diff options
103 files changed, 3489 insertions, 5168 deletions
diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml index 865c748..333d8ee 100644 --- a/.github/workflows/compile.yml +++ b/.github/workflows/compile.yml @@ -7,19 +7,19 @@ jobs: runs-on: ubuntu-22.04 steps: - name: Install packages - run: sudo apt install -y opam zlib1g-dev pkg-config libgmp-dev z3 device-tree-compiler + run: sudo apt install -y --no-install-recommends zlib1g-dev pkg-config libgmp-dev curl - name: Check out repository code uses: actions/checkout@HEAD with: submodules: true - name: Ensure pre-commit checks pass - run: pip install pre-commit && pre-commit run --all-files --show-diff-on-failure --color=always - - name: Init opam - run: opam init --disable-sandboxing -y - - name: Install sail - run: opam install -y sail + run: python3 -m pip install pre-commit && pre-commit run --all-files --show-diff-on-failure --color=always + - name: Install sail from binary + run: | + sudo mkdir -p /usr/local + curl --location https://github.com/rems-project/sail/releases/download/0.18-linux-binary/sail.tar.gz | sudo tar xvz --directory=/usr/local --strip-components=1 - name: Build and test simulators - run: eval $(opam env) && test/run_tests.sh + run: test/run_tests.sh - name: Upload test results if: always() uses: actions/upload-artifact@v4 diff --git a/CODE_STYLE.md b/CODE_STYLE.md index 4463e3a..f4eef22 100644 --- a/CODE_STYLE.md +++ b/CODE_STYLE.md @@ -6,7 +6,7 @@ RISC-V Sail model. Where something is not specified, please look for existing code similar to what is being added and copy the predominant style. -For C and OCaml, the formatting rules should be followed where applicable. +For C the formatting rules should be followed where applicable. For other languages, follow the standard style for that language if it exists; for example, Python should follow the standard PEP-8 style. @@ -86,7 +86,7 @@ Implementation * Do not use strings for anything that is not text * No new compile-time warnings from the Sail compiler should be introduced - (this does not include C or OCaml warnings for the code generated by the Sail + (this does not include C warnings for the code generated by the Sail compiler) * Do not use the `ext*` types and hooks for standard extensions unless diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index ed27b8c..0000000 --- a/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM ocaml/opam -USER root -RUN DEBIAN_FRONTEND=noninteractive apt-get -y install zlib1g-dev pkg-config libgmp-dev z3 -USER opam -RUN opam install sail @@ -7,9 +7,6 @@ else ifeq ($(ARCH),64) override ARCH := RV64 endif -# Set OPAMCLI to 2.0 to supress warnings about opam config var -export OPAMCLI := 2.0 - ifeq ($(ARCH),RV32) SAIL_XLEN := riscv_xlen32.sail else ifeq ($(ARCH),RV64) @@ -18,14 +15,15 @@ else $(error '$(ARCH)' is not a valid architecture, must be one of: RV32, RV64) endif +SAIL_XLEN += riscv_xlen.sail SAIL_FLEN := riscv_flen_D.sail SAIL_VLEN := riscv_vlen.sail # Instruction sources, depending on target SAIL_CHECK_SRCS = riscv_addr_checks_common.sail riscv_addr_checks.sail riscv_misa_ext.sail -SAIL_DEFAULT_INST = riscv_insts_base.sail riscv_insts_aext.sail riscv_insts_cext.sail riscv_insts_mext.sail riscv_insts_zicsr.sail riscv_insts_next.sail riscv_insts_hints.sail -SAIL_DEFAULT_INST += riscv_insts_fext.sail riscv_insts_cfext.sail -SAIL_DEFAULT_INST += riscv_insts_dext.sail riscv_insts_cdext.sail +SAIL_DEFAULT_INST = riscv_insts_base.sail riscv_insts_zifencei.sail riscv_insts_aext.sail riscv_insts_zca.sail riscv_insts_mext.sail riscv_insts_zicsr.sail riscv_insts_hints.sail +SAIL_DEFAULT_INST += riscv_insts_fext.sail riscv_insts_zcf.sail +SAIL_DEFAULT_INST += riscv_insts_dext.sail riscv_insts_zcd.sail SAIL_DEFAULT_INST += riscv_insts_svinval.sail @@ -50,29 +48,33 @@ SAIL_DEFAULT_INST += riscv_insts_zbkx.sail SAIL_DEFAULT_INST += riscv_insts_zicond.sail SAIL_DEFAULT_INST += riscv_insts_vext_utils.sail +SAIL_DEFAULT_INST += riscv_insts_vext_fp_utils.sail SAIL_DEFAULT_INST += riscv_insts_vext_vset.sail SAIL_DEFAULT_INST += riscv_insts_vext_arith.sail SAIL_DEFAULT_INST += riscv_insts_vext_fp.sail SAIL_DEFAULT_INST += riscv_insts_vext_mem.sail SAIL_DEFAULT_INST += riscv_insts_vext_mask.sail SAIL_DEFAULT_INST += riscv_insts_vext_vm.sail +SAIL_DEFAULT_INST += riscv_insts_vext_fp_vm.sail SAIL_DEFAULT_INST += riscv_insts_vext_red.sail +SAIL_DEFAULT_INST += riscv_insts_vext_fp_red.sail +SAIL_DEFAULT_INST += riscv_insts_zicbom.sail +SAIL_DEFAULT_INST += riscv_insts_zicboz.sail SAIL_SEQ_INST = $(SAIL_DEFAULT_INST) riscv_jalr_seq.sail SAIL_RMEM_INST = $(SAIL_DEFAULT_INST) riscv_jalr_rmem.sail riscv_insts_rmem.sail -SAIL_SEQ_INST_SRCS = riscv_insts_begin.sail $(SAIL_SEQ_INST) riscv_insts_end.sail -SAIL_RMEM_INST_SRCS = riscv_insts_begin.sail $(SAIL_RMEM_INST) riscv_insts_end.sail +# TODO: riscv_csr_end.sail here temporarily until the scattered definitions +# are moved from riscv_insts_zicsr.sail to more appropriate places. +SAIL_SEQ_INST_SRCS = riscv_insts_begin.sail $(SAIL_SEQ_INST) riscv_insts_end.sail riscv_csr_end.sail +SAIL_RMEM_INST_SRCS = riscv_insts_begin.sail $(SAIL_RMEM_INST) riscv_insts_end.sail riscv_csr_end.sail # System and platform sources -SAIL_SYS_SRCS = riscv_csr_map.sail +SAIL_SYS_SRCS = riscv_csr_begin.sail # Start of CSR scattered definitions. SAIL_SYS_SRCS += riscv_vext_control.sail # helpers for the 'V' extension -SAIL_SYS_SRCS += riscv_next_regs.sail SAIL_SYS_SRCS += riscv_sys_exceptions.sail # default basic helpers for exception handling SAIL_SYS_SRCS += riscv_sync_exception.sail # define the exception structure used in the model -SAIL_SYS_SRCS += riscv_next_control.sail # helpers for the 'N' extension SAIL_SYS_SRCS += riscv_softfloat_interface.sail riscv_fdext_regs.sail riscv_fdext_control.sail -SAIL_SYS_SRCS += riscv_csr_ext.sail # access to CSR extensions SAIL_SYS_SRCS += riscv_sys_control.sail # general exception handling # SAIL_RV32_VM_SRCS = riscv_vmem_sv32.sail riscv_vmem_rv32.sail @@ -92,7 +94,7 @@ SAIL_VM_SRCS += riscv_vmem_tlb.sail SAIL_VM_SRCS += riscv_vmem.sail # Non-instruction sources -PRELUDE = prelude.sail $(SAIL_XLEN) $(SAIL_FLEN) $(SAIL_VLEN) prelude_mem_metadata.sail prelude_mem.sail +PRELUDE = prelude.sail riscv_errors.sail $(SAIL_XLEN) $(SAIL_FLEN) $(SAIL_VLEN) prelude_mem_metadata.sail prelude_mem.sail SAIL_REGS_SRCS = riscv_reg_type.sail riscv_freg_type.sail riscv_regs.sail riscv_pc_access.sail riscv_sys_regs.sail SAIL_REGS_SRCS += riscv_pmp_regs.sail riscv_pmp_control.sail @@ -122,29 +124,20 @@ SAIL_RMEM_SRCS = $(addprefix model/,$(SAIL_ARCH_SRCS) $(SAIL_RMEM_INST_SRCS) $(S SAIL_RVFI_SRCS = $(addprefix model/,$(SAIL_ARCH_RVFI_SRCS) $(SAIL_SEQ_INST_SRCS) $(RVFI_STEP_SRCS)) SAIL_COQ_SRCS = $(addprefix model/,$(SAIL_ARCH_SRCS) $(SAIL_SEQ_INST_SRCS) $(SAIL_OTHER_COQ_SRCS)) -PLATFORM_OCAML_SRCS = $(addprefix ocaml_emulator/,platform.ml platform_impl.ml softfloat.ml riscv_ocaml_sim.ml) - +SAIL_FLAGS += --require-version 0.18 +SAIL_FLAGS += --strict-var SAIL_FLAGS += -dno_cast SAIL_DOC_FLAGS ?= -doc_embed plain -# Attempt to work with either sail from opam or built from repo in SAIL_DIR -ifneq ($(SAIL_DIR),) -# Use sail repo in SAIL_DIR -SAIL:=$(SAIL_DIR)/sail -export SAIL_DIR -EXPLICIT_COQ_SAIL=yes -else -# Use sail from opam package -SAIL_DIR:=$(shell OPAMCLI=$(OPAMCLI) opam config var sail:share) -SAIL:=sail -endif -SAIL_LIB_DIR:=$(SAIL_DIR)/lib -export SAIL_LIB_DIR -SAIL_SRC_DIR:=$(SAIL_DIR)/src +# Sail command to use. +SAIL := sail -ifndef LEM_DIR -LEM_DIR:=$(shell OPAMCLI=$(OPAMCLI) opam config var lem:share) -endif +# <sail install dir>/share/sail +SAIL_DIR := $(shell $(SAIL) --dir) +SAIL_LIB_DIR := $(SAIL_DIR)/lib +SAIL_SRC_DIR := $(SAIL_DIR)/src + +LEM_DIR := $(SAIL_DIR)/../lem export LEM_DIR C_WARNINGS ?= @@ -200,7 +193,7 @@ RISCV_EXTRAS_LEM = $(addprefix handwritten_support/,$(RISCV_EXTRAS_LEM_FILES)) .PHONY: -all: ocaml_emulator/riscv_ocaml_sim_$(ARCH) c_emulator/riscv_sim_$(ARCH) +all: c_emulator/riscv_sim_$(ARCH) .PHONY: all # the following ensures empty sail-generated .c files don't hang around and @@ -222,44 +215,12 @@ riscv.smt_model: $(SAIL_SRCS) cgen: $(SAIL_SRCS) model/main.sail $(SAIL) -cgen $(SAIL_FLAGS) $(SAIL_SRCS) model/main.sail -generated_definitions/ocaml/$(ARCH)/riscv.ml: $(SAIL_SRCS) Makefile - mkdir -p generated_definitions/ocaml/$(ARCH) - $(SAIL) $(SAIL_FLAGS) -ocaml -ocaml-nobuild -ocaml_build_dir generated_definitions/ocaml/$(ARCH) -o riscv $(SAIL_SRCS) - -# cp -f is required because the generated_definitions/ocaml/$ARCH/*.ml files can -# be read-only, which would otherwise make subsequent builds fail. -ocaml_emulator/_sbuild/riscv_ocaml_sim.native: generated_definitions/ocaml/$(ARCH)/riscv.ml ocaml_emulator/_tags $(PLATFORM_OCAML_SRCS) Makefile - mkdir -p ocaml_emulator/_sbuild - cp ocaml_emulator/_tags $(PLATFORM_OCAML_SRCS) ocaml_emulator/_sbuild - cp -f generated_definitions/ocaml/$(ARCH)/*.ml ocaml_emulator/_sbuild - cd ocaml_emulator/_sbuild && ocamlbuild -use-ocamlfind riscv_ocaml_sim.native - -ocaml_emulator/_sbuild/coverage.native: generated_definitions/ocaml/$(ARCH)/riscv.ml ocaml_emulator/_tags.bisect $(PLATFORM_OCAML_SRCS) Makefile - mkdir -p ocaml_emulator/_sbuild - cp $(PLATFORM_OCAML_SRCS) ocaml_emulator/_sbuild - cp -f generated_definitions/ocaml/$(ARCH)/*.ml ocaml_emulator/_sbuild - cp ocaml_emulator/_tags.bisect ocaml_emulator/_sbuild/_tags - cd ocaml_emulator/_sbuild && ocamlbuild -use-ocamlfind riscv_ocaml_sim.native && cp -L riscv_ocaml_sim.native coverage.native - -ocaml_emulator/riscv_ocaml_sim_$(ARCH): ocaml_emulator/_sbuild/riscv_ocaml_sim.native - rm -f $@ && cp -L $^ $@ && rm -f $^ - -ocaml_emulator/coverage_$(ARCH): ocaml_emulator/_sbuild/coverage.native - rm -f ocaml_emulator/riscv_ocaml_sim_$(ARCH) && cp -L $^ ocaml_emulator/riscv_ocaml_sim_$(ARCH) # since the test scripts runs this file - rm -rf bisect*.out bisect ocaml_emulator/coverage_$(ARCH) $^ - ./test/run_tests.sh # this will generate bisect*.out files in this directory - mkdir ocaml_emulator/bisect && mv bisect*.out bisect/ - mkdir ocaml_emulator/coverage_$(ARCH) && bisect-ppx-report -html ocaml_emulator/coverage_$(ARCH)/ -I ocaml_emulator/_sbuild/ bisect/bisect*.out - cloc: cloc --by-file --force-lang C,sail $(SAIL_SRCS) gcovr: gcovr -r . --html --html-detail -o index.html -ocaml_emulator/tracecmp: ocaml_emulator/tracecmp.ml - ocamlfind ocamlopt -annot -linkpkg -package unix $^ -o $@ - c_preserve_fns=-c_preserve _set_Misa_C generated_definitions/c/riscv_model_$(ARCH).c: $(SAIL_SRCS) model/main.sail Makefile @@ -276,8 +237,6 @@ $(SOFTFLOAT_LIBS): # convenience target .PHONY: csim csim: c_emulator/riscv_sim_$(ARCH) -.PHONY: osim -osim: ocaml_emulator/riscv_ocaml_sim_$(ARCH) .PHONY: rvfi rvfi: c_emulator/riscv_rvfi_$(ARCH) @@ -296,7 +255,6 @@ rvfi_preserve_fns=-c_preserve rvfi_set_instr_packet \ -c_preserve rvfi_get_int_data \ -c_preserve rvfi_zero_exec_packet \ -c_preserve rvfi_halt_exec_packet \ - -c_preserve print_rvfi_exec \ -c_preserve print_instr_packet \ -c_preserve print_rvfi_exec @@ -372,27 +330,10 @@ riscv_hol: generated_definitions/hol4/$(ARCH)/riscvScript.sml riscv_hol_build: generated_definitions/hol4/$(ARCH)/riscvTheory.uo .PHONY: riscv_hol riscv_hol_build -ifdef BBV_DIR - EXPLICIT_COQ_BBV := yes -else - EXPLICIT_COQ_BBV := $(shell if OPAMCLI=$(OPAMCLI) opam config var coq-bbv:share >/dev/null 2>/dev/null; then echo no; else echo yes; fi) - ifeq ($(EXPLICIT_COQ_BBV),yes) - #Coq BBV library hopefully checked out in directory above us - BBV_DIR = ../bbv - endif -endif - -ifndef EXPLICIT_COQ_SAIL - EXPLICIT_COQ_SAIL := $(shell if OPAMCLI=$(OPAMCLI) opam config var coq-sail:share >/dev/null 2>/dev/null; then echo no; else echo yes; fi) -endif COQ_LIBS = -R generated_definitions/coq Riscv -R generated_definitions/coq/$(ARCH) $(ARCH) -R handwritten_support Riscv_common -ifeq ($(EXPLICIT_COQ_BBV),yes) - COQ_LIBS += -Q $(BBV_DIR)/src/bbv bbv -endif -ifeq ($(EXPLICIT_COQ_SAIL),yes) - COQ_LIBS += -Q $(SAIL_LIB_DIR)/coq Sail -endif +COQ_LIBS += -Q $(BBV_DIR)/src/bbv bbv +COQ_LIBS += -Q $(SAIL_LIB_DIR)/coq Sail riscv_coq: $(addprefix generated_definitions/coq/$(ARCH)/,riscv.v riscv_types.v) riscv_coq_build: generated_definitions/coq/$(ARCH)/riscv.vo @@ -403,15 +344,11 @@ $(addprefix generated_definitions/coq/$(ARCH)/,riscv.v riscv_types.v): $(SAIL_CO $(SAIL) $(SAIL_FLAGS) -dcoq_undef_axioms -coq -coq_output_dir generated_definitions/coq/$(ARCH) -o riscv -coq_lib riscv_extras -coq_lib mem_metadata $(SAIL_COQ_SRCS) %.vo: %.v -ifeq ($(EXPLICIT_COQ_BBV),yes) - ifeq ($(wildcard $(BBV_DIR)/src),) +ifeq ($(wildcard $(BBV_DIR)/src),) $(error BBV directory not found. Please set the BBV_DIR environment variable) - endif endif -ifeq ($(EXPLICIT_COQ_SAIL),yes) - ifeq ($(wildcard $(SAIL_LIB_DIR)/coq),) +ifeq ($(wildcard $(SAIL_LIB_DIR)/coq),) $(error lib directory of Sail not found. Please set the SAIL_LIB_DIR environment variable) - endif endif coqc $(COQ_LIBS) $< @@ -463,29 +400,12 @@ sail-riscv.install: FORCE echo 'bin: ["c_emulator/riscv_sim_RV64" "c_emulator/riscv_sim_RV32"]' > sail-riscv.install echo 'share: [ $(foreach f,$(SHARE_FILES),"$f" {"$f"}) ]' >> sail-riscv.install -opam-build: - $(MAKE) ARCH=64 c_emulator/riscv_sim_RV64 - $(MAKE) ARCH=32 c_emulator/riscv_sim_RV32 - $(MAKE) riscv_rmem - -opam-install: - if [ -z "$(INSTALL_DIR)" ]; then echo INSTALL_DIR is unset; false; fi - mkdir -p $(INSTALL_DIR)/bin - cp c_emulator/riscv_sim_RV64 $(INSTALL_DIR)/bin - cp c_emulator/riscv_sim_RV32 $(INSTALL_DIR)/bin - -opam-uninstall: - if [ -z "$(INSTALL_DIR)" ]; then echo INSTALL_DIR is unset; false; fi - rm $(INSTALL_DIR)/bin/riscv_sim_RV64 - rm $(INSTALL_DIR)/bin/riscv_sim_RV32 - clean: - -rm -rf generated_definitions/ocaml/* generated_definitions/c/* generated_definitions/latex/* + -rm -rf generated_definitions/c/* generated_definitions/latex/* -rm -rf generated_definitions/lem/* generated_definitions/isabelle/* generated_definitions/hol4/* generated_definitions/coq/* -rm -rf generated_definitions/for-rmem/* -$(MAKE) -C $(SOFTFLOAT_LIBDIR) clean -rm -f c_emulator/riscv_sim_RV32 c_emulator/riscv_sim_RV64 c_emulator/riscv_rvfi_RV32 c_emulator/riscv_rvfi_RV64 - -rm -rf ocaml_emulator/_sbuild ocaml_emulator/_build ocaml_emulator/riscv_ocaml_sim_RV32 ocaml_emulator/riscv_ocaml_sim_RV64 ocaml_emulator/tracecmp -rm -f *.gcno *.gcda -rm -f z3_problems -Holmake cleanAll @@ -493,4 +413,3 @@ clean: -rm -f handwritten_support/mem_metadata.vo handwritten_support/mem_metadata.vos handwritten_support/mem_metadata.vok handwritten_support/mem_metadata.glob handwritten_support/.mem_metadata.aux -rm -f sail_doc/riscv_RV32.json -rm -f sail_doc/riscv_RV64.json - ocamlbuild -clean @@ -2,31 +2,19 @@ RISCV Sail Model ================ This repository contains a formal specification of the RISC-V architecture, written in -[Sail](https://github.com/rems-project/sail). It has been adopted by the RISC-V Foundation. As of 2021-08-24, the repo has been moved from <https://github.com/rems-project/sail-riscv> to <https://github.com/riscv/sail-riscv>. +[Sail](https://github.com/rems-project/sail). It has been adopted by the RISC-V Foundation. The model specifies assembly language formats of the instructions, the corresponding encoders and decoders, and the instruction semantics. -The current status of its -coverage of the prose RISC-V specification is summarized -[here](doc/Status.md). A [reading guide](doc/ReadingGuide.md) to the model is provided in the [doc/](doc/) subdirectory, along with a guide on [how to extend](doc/ExtendingGuide.md) the model. -Latex or AsciiDoc definitions can be generated from the model that are suitable -for inclusion in reference documentation. Drafts of the RISC-V -[unprivileged](https://github.com/rems-project/riscv-isa-manual/blob/sail/release/riscv-spec-sail-draft.pdf) -and [privileged](https://github.com/rems-project/riscv-isa-manual/blob/sail/release/riscv-privileged-sail-draft.pdf) -specifications that include the Sail formal definitions are available -in the sail branch of this [risc-v-isa-manual repository](https://github.com/rems-project/riscv-isa-manual/tree/sail). -The process to perform this inclusion is explained [here](https://github.com/rems-project/riscv-isa-manual/blob/sail/README.SAIL). +Latex or AsciiDoc definitions can be generated from the model that are suitable for inclusion in reference documentation. There is also the newer [Sail AsciiDoctor documentation support for RISC-V](https://github.com/Alasdair/asciidoctor-sail/blob/master/doc/built/sail_to_asciidoc.pdf). -This is one of [several formal models](https://github.com/riscv/ISA_Formal_Spec_Public_Review/blob/master/comparison_table.md) that were compared within the 2019 -[RISC-V ISA Formal Spec Public Review](https://github.com/riscv/ISA_Formal_Spec_Public_Review). - What is Sail? ------------- @@ -36,7 +24,7 @@ What is Sail? engineer-friendly language, much like earlier vendor pseudocode, but more precisely defined and with tooling to support a wide range of use-cases. <p> -Given a Sail specification, the tool can type-check it, generate documentation snippets (in LaTeX or AsciiDoc), generate executable emulators (in C or OCaml), show specification coverage, generate versions of the ISA for relaxed memory model tools, support automated instruction-sequence test generation, generate theorem-prover definitions for +Given a Sail specification, the tool can type-check it, generate documentation snippets (in LaTeX or AsciiDoc), generate executable emulators, show specification coverage, generate versions of the ISA for relaxed memory model tools, support automated instruction-sequence test generation, generate theorem-prover definitions for interactive proof (in Isabelle, HOL4, and Coq), support proof about binary code (in Islaris), and (in progress) generate a reference ISA model in SystemVerilog that can be used for formal hardware verification. <p> @@ -51,18 +39,124 @@ permission), RISC-V, CHERI-RISC-V, CHERIoT, MIPS, and CHERI-MIPS; all these are enough to boot various operating systems. There are also Sail models for smaller fragments of IBM POWER and x86, including a version of the ACL2 x86 model automatically translated from that. +Getting started +--------------- + +### Building the model + +Install [Sail](https://github.com/rems-project/sail/). On Linux you can download a [binary release](https://github.com/rems-project/sail/releases) (strongly recommended), or you can install from source [using opam](https://github.com/rems-project/sail/blob/sail2/INSTALL.md). Then: + +``` +$ make +``` + +will build the simulator in `c_emulator/riscv_sim_RV64`. + +If you get an error message saying `sail: unknown option '--require-version'.` it's because your Sail compiler is too old. You need version 0.18 or later. + +One can build either the RV32 or the RV64 model by specifying +`ARCH=RV32` or `ARCH=RV64` on the `make` line, and using the matching +target suffix. RV64 is built by default, but the RV32 model can be +built using: +``` +$ ARCH=RV32 make +``` + +which creates the simulator in `c_emulator/riscv_sim_RV32`. + +The Makefile targets `riscv_isa_build`, `riscv_coq_build`, and +`riscv_hol_build` invoke the respective prover to process the +definitions and produce the Isabelle model in +`generated_definitions/isabelle/RV64/Riscv.thy`, the Coq model in +`generated_definitions/coq/RV64/riscv.v`, or the HOL4 model in +`generated_definitions/hol4/RV64/riscvScript.sml` respectively. +We have tested Isabelle 2018, Coq 8.8.1, and HOL4 +Kananaskis-12. When building these targets, please make sure the +corresponding prover libraries in the Sail directory +(`$SAIL_DIR/lib/$prover`) are up-to-date and built, e.g. by running +`make` in those directories. + +### Executing test binaries + +The simulator can be used to execute small test binaries. + +``` +$ ./c_emulator/riscv_sim_<arch> <elf-file> +``` + +A suite of RV32 and RV64 test programs derived from the +[`riscv-tests`](https://github.com/riscv/riscv-tests) test-suite is +included under [test/riscv-tests/](test/riscv-tests/). The test-suite +can be run using `test/run_tests.sh`. + +### Configuring platform options + +Information on configuration options for the simulator is available from +`./c_emulator/riscv_sim_<arch> -h`. + +Some useful options are: configuring whether misaligned accesses trap +(`--enable-misaligned`), and +whether page-table walks update PTE bits (`--enable-dirty-update`). + +### Booting OS images + +For booting operating system images, see the information under the +[os-boot/](os-boot/) subdirectory. + +### Using development versions of Sail + +Rarely, the release version of Sail may not meet your needs. This could happen if you need a bug fix or new feature not yet in the released Sail version, or you are actively working on Sail. In this case you can tell the `sail-riscv` `Makefile` to use a local copy of Sail by setting `SAIL_DIR` to the root of a checkout of the Sail repo when you invoke `make`. Alternatively, you can use `opam pin` to install Sail from a local checkout of the Sail repo as described in the Sail installation instructions. + +Supported RISC-V ISA features +----------------------------- +#### The Sail specification currently captures the following ISA extensions and features: + +- RV32I and RV64I base ISAs, v2.1 +- Zifencei extension for instruction-fetch fence, v2.0 +- Zicsr extension for CSR instructions, v2.0 +- Zicntr and Zihpm extensions for counters, v2.0 +- Zicond extension for integer conditional operations, v1.0 +- Zicbom and Zicboz extensions for cache-block management (Zicbop not currently supported), v1.0 +- M extension for integer multiplication and division, v2.0 +- Zmmul extension for integer multiplication only, v1.0 +- A extension for atomic instructions, v2.1 +- Zalrsc extension for load-reserved and store-conditional operations, v1.0 +- Zaamo extension for atomic memory operations, v1.0 +- Zabha extension for byte and halfword atomic memory operations, v1.0 +- F and D extensions for single and double-precision floating-point, v2.2 +- Zfh and Zfhmin extensions for half-precision floating-point, v1.0 +- Zfa extension for additional floating-point instructions, v1.0 +- Zfinx, Zdinx, and Zhinx extensions for floating-point in integer registers, v1.0 +- C extension for compressed instructions, v2.0 +- Zca, Zcf, Zcd, and Zcb extensions for code size reduction, v1.0 +- B (Zba, Zbb, Zbs) and Zbc extensions for bit manipulation, v1.0 +- Zbkb, Zbkc, and Zbkx extensions for bit manipulation for cryptography, v1.0 +- Zkn (Zknd, Zkne, Zknh) and Zks (Zksed, Zksh) extensions for scalar cryptography, v1.0.1 +- Zkr extension for entropy source, v1.0 +- V extension for vector operations, v1.0 +- Machine, Supervisor, and User modes +- Svinval extension for fine-grained address-translation cache invalidation, v1.0 +- Sv32, Sv39, and Sv48 page-based virtual-memory systems +- Physical Memory Protection (PMP) + +#### The following features are not currently supported: +- The Hypervisor Extension. +- RV32E and RV64E base ISAs +- Mutable XLEN (UXLEN/SXLEN always equal MXLEN) +- Big endian +- Physical Memory Attributes (PMAs) Example RISC-V instruction specifications ---------------------------------- -These are verbatim excerpts from the model file containing the base instructions, [riscv_insts_base.sail](https://github.com/riscv/sail-riscv/blob/master/model/riscv_insts_base.sail), with a few comments added. +These are verbatim excerpts from the model file containing the base instructions, [riscv_insts_base.sail](model/riscv_insts_base.sail), with a few comments added. ### ITYPE (or ADDI) ~~~~~ /* the assembly abstract syntax tree (AST) clause for the ITYPE instructions */ -union clause ast = ITYPE : (bits(12), regbits, regbits, iop) +union clause ast = ITYPE : (bits(12), regidx, regidx, iop) /* the encode/decode mapping between AST elements and 32-bit words */ @@ -81,17 +175,17 @@ mapping clause encdec = ITYPE(imm, rs1, rd, op) <-> imm @ rs1 @ encdec_iop(op) @ function clause execute (ITYPE (imm, rs1, rd, op)) = { let rs1_val = X(rs1); - let immext : xlenbits = EXTS(imm); + let immext : xlenbits = sign_extend(imm); let result : xlenbits = match op { RISCV_ADDI => rs1_val + immext, - RISCV_SLTI => EXTZ(rs1_val <_s immext), - RISCV_SLTIU => EXTZ(rs1_val <_u immext), + RISCV_SLTI => zero_extend(bool_to_bits(rs1_val <_s immext)), + RISCV_SLTIU => zero_extend(bool_to_bits(rs1_val <_u immext)), RISCV_ANDI => rs1_val & immext, RISCV_ORI => rs1_val | immext, RISCV_XORI => rs1_val ^ immext }; X(rd) = result; - true + RETIRE_SUCCESS } /* the assembly/disassembly mapping between AST elements and strings */ @@ -106,7 +200,7 @@ mapping itype_mnemonic : iop <-> string = { } mapping clause assembly = ITYPE(imm, rs1, rd, op) - <-> itype_mnemonic(op) ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ hex_bits_12(imm) + <-> itype_mnemonic(op) ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ hex_bits_signed_12(imm) ~~~~~~ ### SRET @@ -117,14 +211,19 @@ union clause ast = SRET : unit mapping clause encdec = SRET() <-> 0b0001000 @ 0b00010 @ 0b00000 @ 0b000 @ 0b00000 @ 0b1110011 function clause execute SRET() = { - match cur_privilege { - User => handle_illegal(), - Supervisor => if mstatus.TSR() == true - then handle_illegal() - else nextPC = handle_exception(cur_privilege, CTL_SRET(), PC), - Machine => nextPC = handle_exception(cur_privilege, CTL_SRET(), PC) + let sret_illegal : bool = match cur_privilege { + User => true, + Supervisor => not(extensionEnabled(Ext_S)) | mstatus[TSR] == 0b1, + Machine => not(extensionEnabled(Ext_S)) }; - false + if sret_illegal + then { handle_illegal(); RETIRE_FAIL } + else if not(ext_check_xret_priv (Supervisor)) + then { ext_fail_xret_priv(); RETIRE_FAIL } + else { + set_next_pc(exception_handler(cur_privilege, CTL_SRET(), PC)); + RETIRE_SUCCESS + } } mapping clause assembly = SRET() <-> "sret" @@ -134,13 +233,9 @@ mapping clause assembly = SRET() <-> "sret" Sequential execution ---------- -The model builds OCaml and C emulators that can execute RISC-V ELF +The model builds a C emulator that can execute RISC-V ELF files, and both emulators provide platform support sufficient to boot -Linux, FreeBSD and seL4. The OCaml emulator can generate its own -platform device-tree description, while the C emulator currently -requires a consistent description to be manually provided. The C -emulator can be linked against the Spike emulator for execution with -per-instruction tandem-verification. +Linux, FreeBSD and seL4. The C emulator can be linked against the Spike emulator for execution with per-instruction tandem-verification. The C emulator, for the Linux boot, currently runs at approximately 300 KIPS on an Intel i7-7700 (when detailed per-instruction tracing @@ -149,8 +244,8 @@ is disabled), and there are many opportunities for future optimisation boot Linux in about 4 minutes, and FreeBSD in about 2 minutes. Memory usage for the C emulator when booting Linux is approximately 140MB. -The files in the OCaml and C emulator directories implement ELF loading and the -platform devices, define the physical memory map, and use command-line +The files in the C emulator directory implements ELF loading and the +platform devices, defines the physical memory map, and usees command-line options to select implementation-specific ISA choices. @@ -203,19 +298,6 @@ Those tests have also been run on RISC-V hardware, on a SiFive RISC-V FU540 multicore proto board (Freedom Unleashed), kindly on loan from Imperas. To date, only sequentially consistent behaviour was observed there. - - -Use in test generation ----------------------- - -The Sail OCaml backend can produce QuickCheck-style random generators for -types in Sail specifications, which have been used to produce random -instructions sequences for testing. The generation of individual -types can be overridden by the developer to, for example, remove -implementation-specific instructions or introduce register biasing. - - - Generating theorem-prover definitions -------------------------------------- @@ -249,7 +331,6 @@ sail-riscv - model // Sail specification modules - generated_definitions // files generated by Sail, in RV32 and RV64 subdirectories - c - - ocaml - lem - isabelle - coq @@ -258,124 +339,23 @@ sail-riscv - prover_snapshots // snapshots of generated theorem prover definitions - handwritten_support // prover support files - c_emulator // supporting platform files for C emulator -- ocaml_emulator // supporting platform files for OCaml emulator - doc // documentation, including a reading guide - test // test files - riscv-tests // snapshot of tests from the riscv/riscv-tests github repo - os-boot // information and sample files for booting OS images ``` -Getting started ---------------- - -### Building the model - -Install [Sail](https://github.com/rems-project/sail/) [using opam](https://github.com/rems-project/sail/blob/sail2/INSTALL.md) then: - -``` -$ make -``` -will build the 64-bit OCaml simulator in -`ocaml_emulator/riscv_ocaml_sim_RV64` and the C simulator in -`c_emulator/riscv_sim_RV64`. - -One can build either the RV32 or the RV64 model by specifying -`ARCH=RV32` or `ARCH=RV64` on the `make` line, and using the matching -target suffix. RV64 is built by default, but the RV32 model can be -built using: - -``` -$ ARCH=RV32 make -``` - -which creates the 32-bit OCaml simulator in -`ocaml_emulator/riscv_ocaml_sim_RV32` and the C simulator in -`c_emulator/riscv_sim_RV32`. - -The Makefile targets `riscv_isa_build`, `riscv_coq_build`, and -`riscv_hol_build` invoke the respective prover to process the -definitions and produce the Isabelle model in -`generated_definitions/isabelle/RV64/Riscv.thy`, the Coq model in -`generated_definitions/coq/RV64/riscv.v`, or the HOL4 model in -`generated_definitions/hol4/RV64/riscvScript.sml` respectively. -We have tested Isabelle 2018, Coq 8.8.1, and HOL4 -Kananaskis-12. When building these targets, please make sure the -corresponding prover libraries in the Sail directory -(`$SAIL_DIR/lib/$prover`) are up-to-date and built, e.g. by running -`make` in those directories. - -### Executing test binaries - -The C and OCaml simulators can be used to execute small test binaries. The -OCaml simulator depends on the Device Tree Compiler package, which can be -installed in Ubuntu with: - -``` -$ sudo apt-get install device-tree-compiler -``` - -Then, you can run test binaries: - - -``` -$ ./ocaml_emulator/riscv_ocaml_sim_<arch> <elf-file> -$ ./c_emulator/riscv_sim_<arch> <elf-file> -``` - -A suite of RV32 and RV64 test programs derived from the -[`riscv-tests`](https://github.com/riscv/riscv-tests) test-suite is -included under [test/riscv-tests/](test/riscv-tests/). The test-suite -can be run using `test/run_tests.sh`. - -### Configuring platform options - -Some information on additional configuration options for each -simulator is available from `./ocaml_emulator/riscv_ocaml_sim_<arch> --h` and `./c_emulator/riscv_sim_<arch> -h`. - -Some useful options are: configuring whether misaligned accesses trap -(`--enable-misaligned` for C and `-enable-misaligned` for OCaml), and -whether page-table walks update PTE bits (`--enable-dirty-update` for C -and `-enable-dirty-update` for OCaml). - -### Experimental integration with riscv-config - -There is also (as yet unmerged) support for [integration with riscv-config](https://github.com/rems-project/sail-riscv/pull/43) to allow configuring the compiled model according to a riscv-config yaml specification. - -### Booting OS images - -For booting operating system images, see the information under the -[os-boot/](os-boot/) subdirectory. - -### Using development versions of Sail - -Rarely, the version of Sail packaged in opam may not meet your needs. This could happen if you need a bug fix or new feature not yet in the released Sail version, or you are actively working on Sail. In this case you can tell the `sail-riscv` `Makefile` to use a local copy of Sail by setting `SAIL_DIR` to the root of a checkout of the Sail repo when you invoke `make`. Alternatively, you can use `opam pin` to install Sail from a local checkout of the Sail repo as described in the Sail installation instructions. - Licence ------- The model is made available under the BSD two-clause licence in LICENCE. - Authors ------- - Prashanth Mundkur, SRI International; - Rishiyur S. Nikhil (Bluespec Inc.); - Jon French, University of Cambridge; - Brian Campbell, University of Edinburgh; - Robert Norton-Wright, University of Cambridge and Microsoft; - Alasdair Armstrong, University of Cambridge; - Thomas Bauereiss, University of Cambridge; - Shaked Flur, University of Cambridge; - Christopher Pulte, University of Cambridge; - Peter Sewell, University of Cambridge; - Alexander Richardson, University of Cambridge; - Hesham Almatary, University of Cambridge; - Jessica Clarke, University of Cambridge; - Nathaniel Wesley Filardo, Microsoft; - Peter Rugg, University of Cambridge; - Scott Johnson, Aril Computer Corp. +Originally written by Prashanth Mundkur at SRI International, and further developed by others, especially researchers at the University of Cambridge. + +See `LICENCE` and Git blame for a complete list of authors. Funding ------- diff --git a/build_simulators.sh b/build_simulators.sh index 8ad23e0..8fb7641 100755 --- a/build_simulators.sh +++ b/build_simulators.sh @@ -10,8 +10,5 @@ function test_build () { fi } -test_build make ARCH=RV32 ocaml_emulator/riscv_ocaml_sim_RV32 -test_build make ARCH=RV64 ocaml_emulator/riscv_ocaml_sim_RV64 - test_build make ARCH=RV32 c_emulator/riscv_sim_RV32 test_build make ARCH=RV64 c_emulator/riscv_sim_RV64 diff --git a/c_emulator/riscv_config.h b/c_emulator/riscv_config.h index f8f3eb3..0f66231 100644 --- a/c_emulator/riscv_config.h +++ b/c_emulator/riscv_config.h @@ -2,6 +2,7 @@ #include <stdbool.h> extern bool config_print_instr; +extern bool config_print_step; extern bool config_print_reg; extern bool config_print_mem_access; extern bool config_print_platform; diff --git a/c_emulator/riscv_platform.c b/c_emulator/riscv_platform.c index 644cb1e..ae67bac 100644 --- a/c_emulator/riscv_platform.c +++ b/c_emulator/riscv_platform.c @@ -22,11 +22,6 @@ bool sys_enable_rvc(unit u) return rv_enable_rvc; } -bool sys_enable_next(unit u) -{ - return rv_enable_next; -} - bool sys_enable_fdext(unit u) { return rv_enable_fdext; @@ -62,6 +57,16 @@ bool sys_enable_bext(unit u) return rv_enable_bext; } +bool sys_enable_zicbom(unit u) +{ + return rv_enable_zicbom; +} + +bool sys_enable_zicboz(unit u) +{ + return rv_enable_zicboz; +} + uint64_t sys_pmp_count(unit u) { return rv_pmp_count; @@ -72,11 +77,26 @@ uint64_t sys_pmp_grain(unit u) return rv_pmp_grain; } +uint64_t sys_vector_vlen_exp(unit u) +{ + return rv_vector_vlen_exp; +} + +uint64_t sys_vector_elen_exp(unit u) +{ + return rv_vector_elen_exp; +} + bool sys_enable_writable_misa(unit u) { return rv_enable_writable_misa; } +mach_bits sys_writable_hpm_counters(unit u) +{ + return rv_writable_hpm_counters; +} + bool plat_enable_dirty_update(unit u) { return rv_enable_dirty_update; @@ -112,6 +132,11 @@ mach_bits plat_rom_size(unit u) return rv_rom_size; } +mach_bits plat_cache_block_size_exp() +{ + return rv_cache_block_size_exp; +} + // Provides entropy for the scalar cryptography extension. mach_bits plat_get_16_random_bits(unit u) { diff --git a/c_emulator/riscv_platform.h b/c_emulator/riscv_platform.h index 450a64e..fe81c90 100644 --- a/c_emulator/riscv_platform.h +++ b/c_emulator/riscv_platform.h @@ -2,7 +2,6 @@ #include "sail.h" bool sys_enable_rvc(unit); -bool sys_enable_next(unit); bool sys_enable_fdext(unit); bool sys_enable_svinval(unit); bool sys_enable_zcb(unit); @@ -11,13 +10,19 @@ bool sys_enable_writable_misa(unit); bool sys_enable_writable_fiom(unit); bool sys_enable_vext(unit); bool sys_enable_bext(unit); +bool sys_enable_zicbom(unit); +bool sys_enable_zicboz(unit); uint64_t sys_pmp_count(unit); uint64_t sys_pmp_grain(unit); +uint64_t sys_vector_vlen_exp(unit); +uint64_t sys_vector_elen_exp(unit); + bool plat_enable_dirty_update(unit); bool plat_enable_misaligned_access(unit); bool plat_mtval_has_illegal_inst_bits(unit); +mach_bits sys_writable_hpm_counters(unit u); mach_bits plat_ram_base(unit); mach_bits plat_ram_size(unit); @@ -26,6 +31,8 @@ bool within_phys_mem(mach_bits, sail_int); mach_bits plat_rom_base(unit); mach_bits plat_rom_size(unit); +mach_bits plat_cache_block_size_exp(unit); + // Provides entropy for the scalar cryptography extension. mach_bits plat_get_16_random_bits(unit); diff --git a/c_emulator/riscv_platform_impl.c b/c_emulator/riscv_platform_impl.c index cad634e..2713715 100644 --- a/c_emulator/riscv_platform_impl.c +++ b/c_emulator/riscv_platform_impl.c @@ -6,20 +6,25 @@ uint64_t rv_pmp_count = 0; uint64_t rv_pmp_grain = 0; +uint64_t rv_vector_vlen_exp = 0x9; +uint64_t rv_vector_elen_exp = 0x6; + bool rv_enable_svinval = false; bool rv_enable_zcb = false; bool rv_enable_zfinx = false; bool rv_enable_rvc = true; -bool rv_enable_next = false; bool rv_enable_writable_misa = true; bool rv_enable_fdext = true; bool rv_enable_vext = true; bool rv_enable_bext = false; +bool rv_enable_zicbom = false; +bool rv_enable_zicboz = false; bool rv_enable_dirty_update = false; bool rv_enable_misaligned = false; bool rv_mtval_has_illegal_inst_bits = false; bool rv_enable_writable_fiom = true; +uint64_t rv_writable_hpm_counters = 0xFFFFFFFF; uint64_t rv_ram_base = UINT64_C(0x80000000); uint64_t rv_ram_size = UINT64_C(0x4000000); @@ -27,6 +32,9 @@ uint64_t rv_ram_size = UINT64_C(0x4000000); uint64_t rv_rom_base = UINT64_C(0x1000); uint64_t rv_rom_size = UINT64_C(0x100); +// Default 64, which is mandated by RVA22. +uint64_t rv_cache_block_size_exp = UINT64_C(6); + // Provides entropy for the scalar cryptography extension. uint64_t rv_16_random_bits(void) { diff --git a/c_emulator/riscv_platform_impl.h b/c_emulator/riscv_platform_impl.h index 111090d..8bda5e6 100644 --- a/c_emulator/riscv_platform_impl.h +++ b/c_emulator/riscv_platform_impl.h @@ -11,19 +11,24 @@ extern uint64_t rv_pmp_count; extern uint64_t rv_pmp_grain; +extern uint64_t rv_vector_vlen_exp; +extern uint64_t rv_vector_elen_exp; + extern bool rv_enable_svinval; extern bool rv_enable_zcb; extern bool rv_enable_zfinx; extern bool rv_enable_rvc; -extern bool rv_enable_next; extern bool rv_enable_fdext; extern bool rv_enable_vext; extern bool rv_enable_bext; +extern bool rv_enable_zicbom; +extern bool rv_enable_zicboz; extern bool rv_enable_writable_misa; extern bool rv_enable_dirty_update; extern bool rv_enable_misaligned; extern bool rv_mtval_has_illegal_inst_bits; extern bool rv_enable_writable_fiom; +extern uint64_t rv_writable_hpm_counters; extern uint64_t rv_ram_base; extern uint64_t rv_ram_size; @@ -31,6 +36,8 @@ extern uint64_t rv_ram_size; extern uint64_t rv_rom_base; extern uint64_t rv_rom_size; +extern uint64_t rv_cache_block_size_exp; + // Provides entropy for the scalar cryptography extension. extern uint64_t rv_16_random_bits(void); diff --git a/c_emulator/riscv_prelude.c b/c_emulator/riscv_prelude.c index 143a152..b43421f 100644 --- a/c_emulator/riscv_prelude.c +++ b/c_emulator/riscv_prelude.c @@ -15,6 +15,13 @@ unit print_instr(sail_string s) return UNIT; } +unit print_step(unit u) +{ + if (config_print_step) + fprintf(trace_log, "\n"); + return UNIT; +} + unit print_reg(sail_string s) { if (config_print_reg) diff --git a/c_emulator/riscv_prelude.h b/c_emulator/riscv_prelude.h index 9ac33aa..f6692b4 100644 --- a/c_emulator/riscv_prelude.h +++ b/c_emulator/riscv_prelude.h @@ -6,6 +6,7 @@ unit print_string(sail_string prefix, sail_string msg); unit print_instr(sail_string s); +unit print_step(unit u); unit print_reg(sail_string s); unit print_mem_access(sail_string s); unit print_platform(sail_string s); diff --git a/c_emulator/riscv_sim.c b/c_emulator/riscv_sim.c index 9135431..7883846 100644 --- a/c_emulator/riscv_sim.c +++ b/c_emulator/riscv_sim.c @@ -56,6 +56,9 @@ enum { OPT_PMP_GRAIN, OPT_ENABLE_SVINVAL, OPT_ENABLE_ZCB, + OPT_ENABLE_ZICBOM, + OPT_ENABLE_ZICBOZ, + OPT_CACHE_BLOCK_SIZE, }; static bool do_dump_dts = false; @@ -89,6 +92,7 @@ bool config_print_reg = true; bool config_print_mem_access = true; bool config_print_platform = true; bool config_print_rvfi = false; +bool config_print_step = false; void set_config_print(char *var, bool val) { @@ -108,9 +112,11 @@ void set_config_print(char *var, bool val) config_print_rvfi = val; } else if (strcmp("platform", var) == 0) { config_print_platform = val; + } else if (strcmp("step", var) == 0) { + config_print_step = val; } else { - fprintf(stderr, "Unknown trace category: '%s' (should be %s)\n", - "instr|reg|mem|platform|all", var); + fprintf(stderr, "Unknown trace category: '%s' (should be %s)\n", var, + "instr|reg|mem|rvfi|platform|step|all"); exit(1); } } @@ -127,7 +133,6 @@ static struct option options[] = { {"enable-misaligned", no_argument, 0, 'm' }, {"pmp-count", required_argument, 0, OPT_PMP_COUNT }, {"pmp-grain", required_argument, 0, OPT_PMP_GRAIN }, - {"enable-next", no_argument, 0, 'N' }, {"ram-size", required_argument, 0, 'z' }, {"disable-compressed", no_argument, 0, 'C' }, {"disable-writable-misa", no_argument, 0, 'I' }, @@ -151,6 +156,9 @@ static struct option options[] = { {"enable-writable-fiom", no_argument, 0, OPT_ENABLE_WRITABLE_FIOM}, {"enable-svinval", no_argument, 0, OPT_ENABLE_SVINVAL }, {"enable-zcb", no_argument, 0, OPT_ENABLE_ZCB }, + {"enable-zicbom", no_argument, 0, OPT_ENABLE_ZICBOM }, + {"enable-zicboz", no_argument, 0, OPT_ENABLE_ZICBOZ }, + {"cache-block-size", required_argument, 0, OPT_CACHE_BLOCK_SIZE }, #ifdef SAILCOV {"sailcov-file", required_argument, 0, 'c' }, #endif @@ -234,6 +242,17 @@ static void read_dtb(const char *path) fprintf(stdout, "Read %zd bytes of DTB from %s.\n", dtb_len, path); } +// Return log2(x), or -1 if x is not a power of 2. +static int ilog2(uint64_t x) +{ + for (unsigned i = 0; i < sizeof(x) * 8; ++i) { + if (x == (UINT64_C(1) << i)) { + return i; + } + } + return -1; +} + /** * Parses the command line arguments and returns the argv index for the first * ELF file that should be loaded. As getopt transforms the argv array, all @@ -247,6 +266,7 @@ static int process_args(int argc, char **argv) uint64_t ram_size = 0; uint64_t pmp_count = 0; uint64_t pmp_grain = 0; + uint64_t block_size_exp = 0; while (true) { c = getopt_long(argc, argv, "a" @@ -255,7 +275,6 @@ static int process_args(int argc, char **argv) "m" "P" "C" - "N" "I" "F" "W" @@ -319,10 +338,6 @@ static int process_args(int argc, char **argv) fprintf(stderr, "disabling RVC compressed instructions.\n"); rv_enable_rvc = false; break; - case 'N': - fprintf(stderr, "enabling N extension.\n"); - rv_enable_next = true; - break; case 'I': fprintf(stderr, "disabling writable misa CSR.\n"); rv_enable_writable_misa = false; @@ -397,10 +412,34 @@ static int process_args(int argc, char **argv) case 'l': insn_limit = atoi(optarg); break; + case OPT_ENABLE_SVINVAL: + fprintf(stderr, "enabling svinval extension.\n"); + rv_enable_svinval = true; + break; case OPT_ENABLE_ZCB: fprintf(stderr, "enabling Zcb extension.\n"); rv_enable_zcb = true; break; + case OPT_ENABLE_ZICBOM: + fprintf(stderr, "enabling Zicbom extension.\n"); + rv_enable_zicbom = true; + break; + case OPT_ENABLE_ZICBOZ: + fprintf(stderr, "enabling Zicboz extension.\n"); + rv_enable_zicboz = true; + break; + case OPT_CACHE_BLOCK_SIZE: + block_size_exp = ilog2(atol(optarg)); + + if (block_size_exp < 0 || block_size_exp > 12) { + fprintf(stderr, "invalid cache-block-size '%s' provided.\n", optarg); + exit(1); + } + + fprintf(stderr, "setting cache-block-size to 2^%" PRIu64 " = %u B\n", + block_size_exp, 1 << block_size_exp); + rv_cache_block_size_exp = block_size_exp; + break; case 'x': fprintf(stderr, "enabling Zfinx support.\n"); rv_enable_zfinx = true; @@ -989,6 +1028,9 @@ void run_sail(void) KILL(sail_int)(&sail_step); } if (stepped) { + if (config_print_step) { + fprintf(trace_log, "\n"); + } step_no++; insn_cnt++; total_insns++; diff --git a/doc/ExtendingGuide.md b/doc/ExtendingGuide.md index b32b9a9..c00683b 100644 --- a/doc/ExtendingGuide.md +++ b/doc/ExtendingGuide.md @@ -60,7 +60,7 @@ construct of the Sail language. `riscv_platform.sail` can be examined to see how this is done for the SiFive core-local interrupt (CLINT) controller, the HTIF timer and terminal devices. The implementation of the actual functionality provided by these MMIO -devices would need to be added to the C and OCaml emulators. +devices would need to be added to the C emulators. If this functionality requires the definition of new interrupt sources, their encodings would need to be added to `riscv_types.sail`, diff --git a/doc/ReadingGuide.md b/doc/ReadingGuide.md index 5c8d0f6..bf64793 100644 --- a/doc/ReadingGuide.md +++ b/doc/ReadingGuide.md @@ -63,12 +63,12 @@ such as the platform memory map. controller, and the MMIO interfaces to the clock, timer and terminal devices. Sail `extern` definitions are used to connect externally provided (i.e. external to the Sail model) platform functionality, - such as those provided by the platform support in the C and OCaml - emulators. This file also contains the externally selectable + such as those provided by the platform support in the C + emulator. This file also contains the externally selectable options for platform behavior, such as the handling of misaligned memory accesses, the handling of PTE dirty-bit updates during address translation, etc. These platform options can be specified - via command line switches in the C and OCaml emulators. + via command line switches in the C emulator. - `riscv_mem.sail` contains the functions that convert accesses to physical addresses into accesses to physical memory, or MMIO @@ -128,7 +128,7 @@ Structure of the C emulator ---------------------------- The diagram below illustrates how the C emulator is built from the -Sail model. The OCaml emulator follows the same approach. +Sail model. <img src="figs/riscvcsimdeps.svg"> diff --git a/doc/Status.md b/doc/Status.md deleted file mode 100644 index 21c6bc7..0000000 --- a/doc/Status.md +++ /dev/null @@ -1,58 +0,0 @@ -The Sail specification currently captures the following ISA features: - -- The RV32I and RV64I primary base ISAs. - -- The M (multiply/divide), A (atomic), and C (compressed) Standard - Extensions. - -- The F (single-precision) and D (double-precision) Floating-Point - Standard Extensions. This is only executable in the C emulator, - which uses the SoftFloat C library. - -- The Zicsr Control and Status Register Standard Extension. - -- The N Standard Extension for User-Level Interrupts. - -- The Base Counters and Timers. - -- The Machine-Level and Supervisor-Level ISAs for RV32 and RV64. - -- Physical Memory Protection (PMP) - -For the RVWMO memory consistency model, this Sail ISA semantics is integrated with the RVWMO operational model in [the -RMEM tool](https://github.com/rems-project/rmem). - -The Sail specification is parameterized over the following -platform-specific options: - -- handling of misaligned data accesses with or without M-mode traps. - -- updating of the PTE dirty bit with or without architectural - exceptions. - -- the contents of the `mtval` register on an illegal instruction - exception. - -The following ISA features are specified in the -prose RISC-V ISA specification but not currently in the Sail -specification. - -- The RV32E and RV64E subsets of the primary base RV32I and RV64I - integer ISAs. - -- The RV128 primary base ISA. - -- Specification and implementation of Endianness Control. - -- Support for changing XLEN or base ISA control using the {M,S,U}XL - fields of `mstatus`. The model only supports - `MXLEN`=`SXLEN`=`ULEN`. - -- A complete definition of all hardware performance counters. - These are used to count platform-specific events, and hence - platform-dependent. - -- A specification of the Physical Memory Attributes (PMAs) for the - physical memory map. - -- The Hypervisor Extension. diff --git a/generated_definitions/ast/riscv-ast-raw.txt b/generated_definitions/ast/riscv-ast-raw.txt deleted file mode 100644 index 2b5b8bf..0000000 --- a/generated_definitions/ast/riscv-ast-raw.txt +++ /dev/null @@ -1 +0,0 @@ -Defs([(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("internal_pick"),Unknown),[_: "internal_pick"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,:1),Kid_aux(Var("'a"),:1)),:1)),:1))]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),:1)),:1)),:1))]),:1))],Typ_aux(Typ_var(Kid_aux(Var("'a"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_bool"),Unknown),[_: "undefined_bool"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("bool"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_bit"),Unknown),[_: "undefined_bit"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("bit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_int"),Unknown),[_: "undefined_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("int"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_nat"),Unknown),[_: "undefined_nat"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("nat"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_real"),Unknown),[_: "undefined_real"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("real"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_string"),Unknown),[_: "undefined_string"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("string"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_list"),Unknown),[_: "undefined_list"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,:1),Kid_aux(Var("'a"),:1)),:1)),:1))]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),:1)),:1)),:1))]),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_range"),Unknown),[_: "undefined_range"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,:1),Kid_aux(Var("'n"),:1)),:1)),:1));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,:1),Kid_aux(Var("'m"),:1)),:1)),:1))]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("atom"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),:1)),:1)),:1))]),:1))],Typ_aux(Typ_app(Id_aux(Id("range"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),:1)),:1)),:1));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),:1)),:1)),:1))]),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_vector"),Unknown),[_: "undefined_vector"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,:1),Kid_aux(Var("'n"),:1)),:1)),:1));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,:1),Kid_aux(Var("'a"),:1)),:1)),:1));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_order,:1),Kid_aux(Var("'ord"),:1)),:1)),:1))]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_var(Kid_aux(Var("'a"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("vector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),:1)),:1)),:1));(A_aux(A_order(Ord_aux(Ord_var(Kid_aux(Var("'ord"),:1)),:1)),:1));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),:1)),:1)),:1))]),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_bitvector"),Unknown),[_: "undefined_bitvector"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,:1),Kid_aux(Var("'n"),:1)),:1)),:1))]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),:1)),:1)),:1))]),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),:1)),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_unit"),Unknown),[_: "undefined_unit"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_default(DT_aux(DT_order(Ord_aux(Ord_dec,model/prelude.sail:1)),model/prelude.sail:1)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ediv_int"),../sail/lib/smt.sail:7),[ocaml: "quotient",interpreter: "quotient",lem: "integerDiv",c: "ediv_int",coq: "ediv_with_eq"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/smt.sail:13),Kid_aux(Var("'n"),../sail/lib/smt.sail:13)),../sail/lib/smt.sail:13)),../sail/lib/smt.sail:13));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/smt.sail:13),Kid_aux(Var("'m"),../sail/lib/smt.sail:13)),../sail/lib/smt.sail:13)),../sail/lib/smt.sail:13))]),../sail/lib/smt.sail:13),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/smt.sail:13),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/smt.sail:13)),../sail/lib/smt.sail:13)),../sail/lib/smt.sail:13))]),../sail/lib/smt.sail:13));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/smt.sail:13),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/smt.sail:13)),../sail/lib/smt.sail:13)),../sail/lib/smt.sail:13))]),../sail/lib/smt.sail:13))],Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/smt.sail:13),[(A_aux(A_nexp(Nexp_aux(Nexp_app(Id_aux(Id("div"),../sail/lib/smt.sail:13),[(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/smt.sail:13)),../sail/lib/smt.sail:13));(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/smt.sail:13)),../sail/lib/smt.sail:13))]),../sail/lib/smt.sail:13)),../sail/lib/smt.sail:13))]),../sail/lib/smt.sail:13),Effect_aux(Effect_set([]),../sail/lib/smt.sail:13)),../sail/lib/smt.sail:13)),../sail/lib/smt.sail:13))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("emod_int"),../sail/lib/smt.sail:15),[ocaml: "modulus",interpreter: "modulus",lem: "integerMod",c: "emod_int",coq: "emod_with_eq"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/smt.sail:21),Kid_aux(Var("'n"),../sail/lib/smt.sail:21)),../sail/lib/smt.sail:21)),../sail/lib/smt.sail:21));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/smt.sail:21),Kid_aux(Var("'m"),../sail/lib/smt.sail:21)),../sail/lib/smt.sail:21)),../sail/lib/smt.sail:21))]),../sail/lib/smt.sail:21),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/smt.sail:21),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/smt.sail:21)),../sail/lib/smt.sail:21)),../sail/lib/smt.sail:21))]),../sail/lib/smt.sail:21));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/smt.sail:21),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/smt.sail:21)),../sail/lib/smt.sail:21)),../sail/lib/smt.sail:21))]),../sail/lib/smt.sail:21))],Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/smt.sail:21),[(A_aux(A_nexp(Nexp_aux(Nexp_app(Id_aux(Id("mod"),../sail/lib/smt.sail:21),[(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/smt.sail:21)),../sail/lib/smt.sail:21));(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/smt.sail:21)),../sail/lib/smt.sail:21))]),../sail/lib/smt.sail:21)),../sail/lib/smt.sail:21))]),../sail/lib/smt.sail:21),Effect_aux(Effect_set([]),../sail/lib/smt.sail:21)),../sail/lib/smt.sail:21)),../sail/lib/smt.sail:21))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("abs_int_atom"),../sail/lib/smt.sail:23),[ocaml: "abs_int",interpreter: "abs_int",lem: "abs_int",c: "abs_int",coq: "abs_with_eq"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/smt.sail:29),Kid_aux(Var("'n"),../sail/lib/smt.sail:29)),../sail/lib/smt.sail:29)),../sail/lib/smt.sail:29))]),../sail/lib/smt.sail:29),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/smt.sail:29),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/smt.sail:29)),../sail/lib/smt.sail:29)),../sail/lib/smt.sail:29))]),../sail/lib/smt.sail:29))],Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/smt.sail:29),[(A_aux(A_nexp(Nexp_aux(Nexp_app(Id_aux(Id("abs"),../sail/lib/smt.sail:29),[(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/smt.sail:29)),../sail/lib/smt.sail:29))]),../sail/lib/smt.sail:29)),../sail/lib/smt.sail:29))]),../sail/lib/smt.sail:29),Effect_aux(Effect_set([]),../sail/lib/smt.sail:29)),../sail/lib/smt.sail:29)),../sail/lib/smt.sail:29))));(DEF_overload(Id_aux(Id("abs_int"),../sail/lib/smt.sail:31),[(Id_aux(Id("abs_int_atom"),../sail/lib/smt.sail:31))]));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_option"),../sail/lib/option.sail:9),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,../sail/lib/option.sail:9),Kid_aux(Var("'a"),../sail/lib/option.sail:9)),../sail/lib/option.sail:9)),../sail/lib/option.sail:9))]),../sail/lib/option.sail:9),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:9)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:9)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_option"),../sail/lib/option.sail:9),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("typ_a"),../sail/lib/option.sail:9)),Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:9)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/option.sail:11)),../sail/lib/option.sail:11),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/option.sail:11)),../sail/lib/option.sail:11))),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/option.sail:11)),../sail/lib/option.sail:11)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/option.sail:11)),../sail/lib/option.sail:11))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:10)),../sail/lib/option.sail:10),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:10)),../sail/lib/option.sail:10))),Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:10)),../sail/lib/option.sail:10)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:10)),../sail/lib/option.sail:10))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("Some"),../sail/lib/option.sail:10),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:10)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:9)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("None"),../sail/lib/option.sail:11),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/option.sail:11)),../sail/lib/option.sail:11)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:9)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:9)),Unknown)),Unknown))]),:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:9)),Unknown)),Unknown))]),:1))),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:9)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:9)),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:9)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:9)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("is_none"),../sail/lib/option.sail:14),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,../sail/lib/option.sail:14),Kid_aux(Var("'a"),../sail/lib/option.sail:14)),../sail/lib/option.sail:14)),../sail/lib/option.sail:14))]),../sail/lib/option.sail:14),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:14),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:14)),../sail/lib/option.sail:14)),../sail/lib/option.sail:14))]),../sail/lib/option.sail:14))],Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/option.sail:14)),../sail/lib/option.sail:14),Effect_aux(Effect_set([]),../sail/lib/option.sail:14)),../sail/lib/option.sail:14)),../sail/lib/option.sail:14))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("is_none"),../sail/lib/option.sail:16),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("opt"),../sail/lib/option.sail:16)),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:14),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:14)),../sail/lib/option.sail:14)),../sail/lib/option.sail:14))]),../sail/lib/option.sail:14)),E_aux(E_case(E_aux(E_id(Id_aux(Id("opt"),../sail/lib/option.sail:16)),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:14),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:14)),../sail/lib/option.sail:14)),../sail/lib/option.sail:14))]),../sail/lib/option.sail:14)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),../sail/lib/option.sail:17),[(P_aux(P_wild,Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:14)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:14),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:14)),../sail/lib/option.sail:14)),../sail/lib/option.sail:14))]),../sail/lib/option.sail:14)),E_aux(E_lit(L_aux(L_false,../sail/lib/option.sail:17)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),../sail/lib/option.sail:18),[(P_aux(P_lit(L_aux(L_unit,../sail/lib/option.sail:18)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:14),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:14)),../sail/lib/option.sail:14)),../sail/lib/option.sail:14))]),../sail/lib/option.sail:14)),E_aux(E_lit(L_aux(L_true,../sail/lib/option.sail:18)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/option.sail:14)),../sail/lib/option.sail:14))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:14),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:14)),../sail/lib/option.sail:14)),../sail/lib/option.sail:14))]),../sail/lib/option.sail:14))],Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/option.sail:14)),../sail/lib/option.sail:14),Effect_aux(Effect_set([]),../sail/lib/option.sail:14)),../sail/lib/option.sail:14)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("is_some"),../sail/lib/option.sail:21),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,../sail/lib/option.sail:21),Kid_aux(Var("'a"),../sail/lib/option.sail:21)),../sail/lib/option.sail:21)),../sail/lib/option.sail:21))]),../sail/lib/option.sail:21),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:21),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:21)),../sail/lib/option.sail:21)),../sail/lib/option.sail:21))]),../sail/lib/option.sail:21))],Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/option.sail:21)),../sail/lib/option.sail:21),Effect_aux(Effect_set([]),../sail/lib/option.sail:21)),../sail/lib/option.sail:21)),../sail/lib/option.sail:21))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("is_some"),../sail/lib/option.sail:23),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("opt"),../sail/lib/option.sail:23)),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:21),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:21)),../sail/lib/option.sail:21)),../sail/lib/option.sail:21))]),../sail/lib/option.sail:21)),E_aux(E_case(E_aux(E_id(Id_aux(Id("opt"),../sail/lib/option.sail:23)),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:21),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:21)),../sail/lib/option.sail:21)),../sail/lib/option.sail:21))]),../sail/lib/option.sail:21)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),../sail/lib/option.sail:24),[(P_aux(P_wild,Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:21)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:21),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:21)),../sail/lib/option.sail:21)),../sail/lib/option.sail:21))]),../sail/lib/option.sail:21)),E_aux(E_lit(L_aux(L_true,../sail/lib/option.sail:24)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),../sail/lib/option.sail:25),[(P_aux(P_lit(L_aux(L_unit,../sail/lib/option.sail:25)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:21),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:21)),../sail/lib/option.sail:21)),../sail/lib/option.sail:21))]),../sail/lib/option.sail:21)),E_aux(E_lit(L_aux(L_false,../sail/lib/option.sail:25)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/option.sail:21)),../sail/lib/option.sail:21))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:21),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/option.sail:21)),../sail/lib/option.sail:21)),../sail/lib/option.sail:21))]),../sail/lib/option.sail:21))],Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/option.sail:21)),../sail/lib/option.sail:21),Effect_aux(Effect_set([]),../sail/lib/option.sail:21)),../sail/lib/option.sail:21)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("eq_unit"),../sail/lib/flow.sail:12),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/flow.sail:12)),../sail/lib/flow.sail:12));(Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/flow.sail:12)),../sail/lib/flow.sail:12))],Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:12),[(A_aux(A_bool(NC_aux(NC_true,../sail/lib/flow.sail:12)),../sail/lib/flow.sail:12))]),../sail/lib/flow.sail:12),Effect_aux(Effect_set([]),../sail/lib/flow.sail:12)),../sail/lib/flow.sail:12)),../sail/lib/flow.sail:12))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("eq_bit"),../sail/lib/flow.sail:14),[lem: "eq",_: "eq_bit"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14));(Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14))],Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14),Effect_aux(Effect_set([]),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("eq_unit"),../sail/lib/flow.sail:16),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/flow.sail:12)),../sail/lib/flow.sail:12)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/flow.sail:12)),../sail/lib/flow.sail:12)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/flow.sail:12)),../sail/lib/flow.sail:12));(Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/flow.sail:12)),../sail/lib/flow.sail:12))]),../sail/lib/flow.sail:16)),E_aux(E_lit(L_aux(L_true,../sail/lib/flow.sail:16)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/flow.sail:12)),../sail/lib/flow.sail:12));(Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/flow.sail:12)),../sail/lib/flow.sail:12))],Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:12),[(A_aux(A_bool(NC_aux(NC_true,../sail/lib/flow.sail:12)),../sail/lib/flow.sail:12))]),../sail/lib/flow.sail:12),Effect_aux(Effect_set([]),../sail/lib/flow.sail:12)),../sail/lib/flow.sail:12)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("not_bool"),../sail/lib/flow.sail:18),[coq: "negb",_: "not"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_bool,../sail/lib/flow.sail:18),Kid_aux(Var("'p"),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'p"),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18))],Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'p"),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18),Effect_aux(Effect_set([]),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("and_bool"),../sail/lib/flow.sail:22),[coq: "andb",_: "and_bool"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_bool,../sail/lib/flow.sail:22),Kid_aux(Var("'p"),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_bool,../sail/lib/flow.sail:22),Kid_aux(Var("'q"),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))]),../sail/lib/flow.sail:22),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:22),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'p"),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))]),../sail/lib/flow.sail:22));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:22),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'q"),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))]),../sail/lib/flow.sail:22))],Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:22),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'p"),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22),NC_aux(NC_var(Kid_aux(Var("'q"),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))]),../sail/lib/flow.sail:22),Effect_aux(Effect_set([]),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("and_bool_no_flow"),../sail/lib/flow.sail:24),[coq: "andb",_: "and_bool"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:24)),../sail/lib/flow.sail:24));(Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:24)),../sail/lib/flow.sail:24))],Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:24)),../sail/lib/flow.sail:24),Effect_aux(Effect_set([]),../sail/lib/flow.sail:24)),../sail/lib/flow.sail:24)),../sail/lib/flow.sail:24))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("or_bool"),../sail/lib/flow.sail:26),[coq: "orb",_: "or_bool"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_bool,../sail/lib/flow.sail:26),Kid_aux(Var("'p"),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_bool,../sail/lib/flow.sail:26),Kid_aux(Var("'q"),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26))]),../sail/lib/flow.sail:26),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:26),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'p"),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26))]),../sail/lib/flow.sail:26));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:26),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'q"),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26))]),../sail/lib/flow.sail:26))],Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:26),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'p"),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'q"),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26))]),../sail/lib/flow.sail:26),Effect_aux(Effect_set([]),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("eq_int"),../sail/lib/flow.sail:28),[ocaml: "eq_int",interpreter: "eq_int",lem: "eq",c: "eq_int",coq: "Z.eqb"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/flow.sail:28),Kid_aux(Var("'n"),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/flow.sail:28),Kid_aux(Var("'m"),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:28),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:28),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))],Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28),Effect_aux(Effect_set([]),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("eq_bool"),../sail/lib/flow.sail:30),[ocaml: "eq_bool",interpreter: "eq_bool",lem: "eq",c: "eq_bool",coq: "Bool.eqb"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:30)),../sail/lib/flow.sail:30));(Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:30)),../sail/lib/flow.sail:30))],Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:30)),../sail/lib/flow.sail:30),Effect_aux(Effect_set([]),../sail/lib/flow.sail:30)),../sail/lib/flow.sail:30)),../sail/lib/flow.sail:30))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("neq_int"),../sail/lib/flow.sail:32),[lem: "neq"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/flow.sail:32),Kid_aux(Var("'n"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/flow.sail:32),Kid_aux(Var("'m"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32))]),../sail/lib/flow.sail:32),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:32),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32))]),../sail/lib/flow.sail:32));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:32),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32))]),../sail/lib/flow.sail:32))],Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:32),[(A_aux(A_bool(NC_aux(NC_not_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32))]),../sail/lib/flow.sail:32),Effect_aux(Effect_set([]),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("neq_int"),../sail/lib/flow.sail:33),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("x"),../sail/lib/flow.sail:33)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("y"),../sail/lib/flow.sail:33)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),Unknown))]),Unknown))]),../sail/lib/flow.sail:33)),E_aux(E_app(Id_aux(Id("not_bool"),../sail/lib/flow.sail:33),[(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:33),[(E_aux(E_id(Id_aux(Id("x"),../sail/lib/flow.sail:33)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("y"),../sail/lib/flow.sail:33)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:32),[(A_aux(A_bool(NC_aux(NC_not_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32))]),../sail/lib/flow.sail:32),Effect_aux(Effect_set([]),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("neq_bool"),../sail/lib/flow.sail:35),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:35)),../sail/lib/flow.sail:35));(Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:35)),../sail/lib/flow.sail:35))],Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:35)),../sail/lib/flow.sail:35),Effect_aux(Effect_set([]),../sail/lib/flow.sail:35)),../sail/lib/flow.sail:35)),../sail/lib/flow.sail:35))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("neq_bool"),../sail/lib/flow.sail:36),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("x"),../sail/lib/flow.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("y"),../sail/lib/flow.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6#"),Unknown)),Unknown)),Unknown))]),Unknown))]),../sail/lib/flow.sail:36)),E_aux(E_app(Id_aux(Id("not_bool"),../sail/lib/flow.sail:36),[(E_aux(E_app(Id_aux(Id("eq_bool"),../sail/lib/flow.sail:36),[(E_aux(E_id(Id_aux(Id("x"),../sail/lib/flow.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("y"),../sail/lib/flow.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:30)),../sail/lib/flow.sail:30)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex7#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:35)),../sail/lib/flow.sail:35),Effect_aux(Effect_set([]),../sail/lib/flow.sail:35)),../sail/lib/flow.sail:35)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lteq_int"),../sail/lib/flow.sail:38),[coq: "Z.leb",_: "lteq"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/flow.sail:38),Kid_aux(Var("'n"),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/flow.sail:38),Kid_aux(Var("'m"),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))]),../sail/lib/flow.sail:38),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))]),../sail/lib/flow.sail:38));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))]),../sail/lib/flow.sail:38))],Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:38),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))]),../sail/lib/flow.sail:38),Effect_aux(Effect_set([]),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("gteq_int"),../sail/lib/flow.sail:39),[coq: "Z.geb",_: "gteq"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/flow.sail:39),Kid_aux(Var("'n"),../sail/lib/flow.sail:39)),../sail/lib/flow.sail:39)),../sail/lib/flow.sail:39));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/flow.sail:39),Kid_aux(Var("'m"),../sail/lib/flow.sail:39)),../sail/lib/flow.sail:39)),../sail/lib/flow.sail:39))]),../sail/lib/flow.sail:39),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:39),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:39)),../sail/lib/flow.sail:39)),../sail/lib/flow.sail:39))]),../sail/lib/flow.sail:39));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:39),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:39)),../sail/lib/flow.sail:39)),../sail/lib/flow.sail:39))]),../sail/lib/flow.sail:39))],Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:39),[(A_aux(A_bool(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:39)),../sail/lib/flow.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:39)),../sail/lib/flow.sail:39)),../sail/lib/flow.sail:39)),../sail/lib/flow.sail:39))]),../sail/lib/flow.sail:39),Effect_aux(Effect_set([]),../sail/lib/flow.sail:39)),../sail/lib/flow.sail:39)),../sail/lib/flow.sail:39))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lt_int"),../sail/lib/flow.sail:40),[coq: "Z.ltb",_: "lt"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/flow.sail:40),Kid_aux(Var("'n"),../sail/lib/flow.sail:40)),../sail/lib/flow.sail:40)),../sail/lib/flow.sail:40));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/flow.sail:40),Kid_aux(Var("'m"),../sail/lib/flow.sail:40)),../sail/lib/flow.sail:40)),../sail/lib/flow.sail:40))]),../sail/lib/flow.sail:40),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:40),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:40)),../sail/lib/flow.sail:40)),../sail/lib/flow.sail:40))]),../sail/lib/flow.sail:40));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:40),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:40)),../sail/lib/flow.sail:40)),../sail/lib/flow.sail:40))]),../sail/lib/flow.sail:40))],Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:40),[(A_aux(A_bool(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:40)),../sail/lib/flow.sail:40),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:40)),../sail/lib/flow.sail:40)),../sail/lib/flow.sail:40)),../sail/lib/flow.sail:40))]),../sail/lib/flow.sail:40),Effect_aux(Effect_set([]),../sail/lib/flow.sail:40)),../sail/lib/flow.sail:40)),../sail/lib/flow.sail:40))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("gt_int"),../sail/lib/flow.sail:41),[coq: "Z.gtb",_: "gt"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/flow.sail:41),Kid_aux(Var("'n"),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/flow.sail:41),Kid_aux(Var("'m"),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41))]),../sail/lib/flow.sail:41),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:41),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41))]),../sail/lib/flow.sail:41));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:41),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41))]),../sail/lib/flow.sail:41))],Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:41),[(A_aux(A_bool(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41))]),../sail/lib/flow.sail:41),Effect_aux(Effect_set([]),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41))));(DEF_overload(Id_aux(Operator("=="),../sail/lib/flow.sail:43),[(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43));(Id_aux(Id("eq_bit"),../sail/lib/flow.sail:43));(Id_aux(Id("eq_bool"),../sail/lib/flow.sail:43));(Id_aux(Id("eq_unit"),../sail/lib/flow.sail:43))]));(DEF_overload(Id_aux(Operator("!="),../sail/lib/flow.sail:44),[(Id_aux(Id("neq_int"),../sail/lib/flow.sail:44));(Id_aux(Id("neq_bool"),../sail/lib/flow.sail:44))]));(DEF_overload(Id_aux(Operator("|"),../sail/lib/flow.sail:45),[(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45))]));(DEF_overload(Id_aux(Operator("&"),../sail/lib/flow.sail:46),[(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46))]));(DEF_overload(Id_aux(Operator("<="),../sail/lib/flow.sail:48),[(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48))]));(DEF_overload(Id_aux(Operator("<"),../sail/lib/flow.sail:49),[(Id_aux(Id("lt_int"),../sail/lib/flow.sail:49))]));(DEF_overload(Id_aux(Operator(">="),../sail/lib/flow.sail:50),[(Id_aux(Id("gteq_int"),../sail/lib/flow.sail:50))]));(DEF_overload(Id_aux(Operator(">"),../sail/lib/flow.sail:51),[(Id_aux(Id("gt_int"),../sail/lib/flow.sail:51))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("__id"),../sail/lib/flow.sail:60),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/flow.sail:60),Kid_aux(Var("'n"),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60))],Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/flow.sail:60),Kid_aux(Var("'n"),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("__id"),../sail/lib/flow.sail:60),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60),P_aux(P_id(Id_aux(Id("x"),../sail/lib/flow.sail:60)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)),E_aux(E_id(Id_aux(Id("x"),../sail/lib/flow.sail:60)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60))],Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_overload(Id_aux(Id("__size"),../sail/lib/flow.sail:62),[(Id_aux(Id("__id"),../sail/lib/flow.sail:62))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("__deref"),../sail/lib/flow.sail:64),[_: "reg_deref"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,../sail/lib/flow.sail:64),Kid_aux(Var("'a"),../sail/lib/flow.sail:64)),../sail/lib/flow.sail:64)),../sail/lib/flow.sail:64))]),../sail/lib/flow.sail:64),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),../sail/lib/flow.sail:64),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/flow.sail:64)),../sail/lib/flow.sail:64)),../sail/lib/flow.sail:64))]),../sail/lib/flow.sail:64))],Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/flow.sail:64)),../sail/lib/flow.sail:64),Effect_aux(Effect_set([(BE_aux(BE_rreg,../sail/lib/flow.sail:64))]),../sail/lib/flow.sail:64)),../sail/lib/flow.sail:64)),../sail/lib/flow.sail:64))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("__bitfield_deref"),../sail/lib/flow.sail:67),[_: "reg_deref"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,../sail/lib/flow.sail:67),Kid_aux(Var("'a"),../sail/lib/flow.sail:67)),../sail/lib/flow.sail:67)),../sail/lib/flow.sail:67))]),../sail/lib/flow.sail:67),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),../sail/lib/flow.sail:67),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/flow.sail:67)),../sail/lib/flow.sail:67)),../sail/lib/flow.sail:67))]),../sail/lib/flow.sail:67))],Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/flow.sail:67)),../sail/lib/flow.sail:67),Effect_aux(Effect_set([]),../sail/lib/flow.sail:67)),../sail/lib/flow.sail:67)),../sail/lib/flow.sail:67))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("add_atom"),../sail/lib/arith.sail:8),[ocaml: "add_int",interpreter: "add_int",lem: "integerAdd",c: "add_int",coq: "Z.add"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/arith.sail:8),Kid_aux(Var("'n"),../sail/lib/arith.sail:8)),../sail/lib/arith.sail:8)),../sail/lib/arith.sail:8));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/arith.sail:8),Kid_aux(Var("'m"),../sail/lib/arith.sail:8)),../sail/lib/arith.sail:8)),../sail/lib/arith.sail:8))]),../sail/lib/arith.sail:8),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9))]),../sail/lib/arith.sail:9));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9))]),../sail/lib/arith.sail:9))],Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9))]),../sail/lib/arith.sail:9),Effect_aux(Effect_set([]),../sail/lib/arith.sail:8-9)),../sail/lib/arith.sail:8-9)),../sail/lib/arith.sail:8-9))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("add_int"),../sail/lib/arith.sail:11),[ocaml: "add_int",interpreter: "add_int",lem: "integerAdd",c: "add_int",coq: "Z.add"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:11)),../sail/lib/arith.sail:11));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:11)),../sail/lib/arith.sail:11))],Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:11)),../sail/lib/arith.sail:11),Effect_aux(Effect_set([]),../sail/lib/arith.sail:11)),../sail/lib/arith.sail:11)),../sail/lib/arith.sail:11))));(DEF_overload(Id_aux(Operator("+"),../sail/lib/arith.sail:13),[(Id_aux(Id("add_atom"),../sail/lib/arith.sail:13));(Id_aux(Id("add_int"),../sail/lib/arith.sail:13))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sub_atom"),../sail/lib/arith.sail:17),[ocaml: "sub_int",interpreter: "sub_int",lem: "integerMinus",c: "sub_int",coq: "Z.sub"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/arith.sail:17),Kid_aux(Var("'n"),../sail/lib/arith.sail:17)),../sail/lib/arith.sail:17)),../sail/lib/arith.sail:17));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/arith.sail:17),Kid_aux(Var("'m"),../sail/lib/arith.sail:17)),../sail/lib/arith.sail:17)),../sail/lib/arith.sail:17))]),../sail/lib/arith.sail:17),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18))],Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18),Effect_aux(Effect_set([]),../sail/lib/arith.sail:17-18)),../sail/lib/arith.sail:17-18)),../sail/lib/arith.sail:17-18))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sub_int"),../sail/lib/arith.sail:20),[ocaml: "sub_int",interpreter: "sub_int",lem: "integerMinus",c: "sub_int",coq: "Z.sub"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:20)),../sail/lib/arith.sail:20));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:20)),../sail/lib/arith.sail:20))],Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:20)),../sail/lib/arith.sail:20),Effect_aux(Effect_set([]),../sail/lib/arith.sail:20)),../sail/lib/arith.sail:20)),../sail/lib/arith.sail:20))));(DEF_overload(Id_aux(Operator("-"),../sail/lib/arith.sail:22),[(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22));(Id_aux(Id("sub_int"),../sail/lib/arith.sail:22))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sub_nat"),../sail/lib/arith.sail:24),[ocaml: "(fun (x,y) -> let n = sub_int (x,y) in if Big_int.less_equal n Big_int.zero then Big_int.zero else n)",lem: "integerMinus",_: "sub_nat"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("nat"),../sail/lib/arith.sail:28)),../sail/lib/arith.sail:28));(Typ_aux(Typ_id(Id_aux(Id("nat"),../sail/lib/arith.sail:28)),../sail/lib/arith.sail:28))],Typ_aux(Typ_id(Id_aux(Id("nat"),../sail/lib/arith.sail:28)),../sail/lib/arith.sail:28),Effect_aux(Effect_set([]),../sail/lib/arith.sail:28)),../sail/lib/arith.sail:28)),../sail/lib/arith.sail:28))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("negate_atom"),../sail/lib/arith.sail:32),[ocaml: "negate",interpreter: "negate",lem: "integerNegate",c: "neg_int",coq: "Z.opp"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/arith.sail:32),Kid_aux(Var("'n"),../sail/lib/arith.sail:32)),../sail/lib/arith.sail:32)),../sail/lib/arith.sail:32))]),../sail/lib/arith.sail:32),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:32),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/arith.sail:32)),../sail/lib/arith.sail:32)),../sail/lib/arith.sail:32))]),../sail/lib/arith.sail:32))],Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:32),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/arith.sail:32)),../sail/lib/arith.sail:32)),../sail/lib/arith.sail:32)),../sail/lib/arith.sail:32))]),../sail/lib/arith.sail:32),Effect_aux(Effect_set([]),../sail/lib/arith.sail:32)),../sail/lib/arith.sail:32)),../sail/lib/arith.sail:32))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("negate_int"),../sail/lib/arith.sail:34),[ocaml: "negate",interpreter: "negate",lem: "integerNegate",c: "neg_int",coq: "Z.opp"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:34)),../sail/lib/arith.sail:34))],Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:34)),../sail/lib/arith.sail:34),Effect_aux(Effect_set([]),../sail/lib/arith.sail:34)),../sail/lib/arith.sail:34)),../sail/lib/arith.sail:34))));(DEF_overload(Id_aux(Id("negate"),../sail/lib/arith.sail:36),[(Id_aux(Id("negate_atom"),../sail/lib/arith.sail:36));(Id_aux(Id("negate_int"),../sail/lib/arith.sail:36))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("mult_atom"),../sail/lib/arith.sail:40),[ocaml: "mult",interpreter: "mult",lem: "integerMult",c: "mult_int",coq: "Z.mul"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/arith.sail:40),Kid_aux(Var("'n"),../sail/lib/arith.sail:40)),../sail/lib/arith.sail:40)),../sail/lib/arith.sail:40));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/arith.sail:40),Kid_aux(Var("'m"),../sail/lib/arith.sail:40)),../sail/lib/arith.sail:40)),../sail/lib/arith.sail:40))]),../sail/lib/arith.sail:40),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:41),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41))]),../sail/lib/arith.sail:41));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:41),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41))]),../sail/lib/arith.sail:41))],Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:41),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41))]),../sail/lib/arith.sail:41),Effect_aux(Effect_set([]),../sail/lib/arith.sail:40-41)),../sail/lib/arith.sail:40-41)),../sail/lib/arith.sail:40-41))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("mult_int"),../sail/lib/arith.sail:43),[ocaml: "mult",interpreter: "mult",lem: "integerMult",c: "mult_int",coq: "Z.mul"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:43)),../sail/lib/arith.sail:43));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:43)),../sail/lib/arith.sail:43))],Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:43)),../sail/lib/arith.sail:43),Effect_aux(Effect_set([]),../sail/lib/arith.sail:43)),../sail/lib/arith.sail:43)),../sail/lib/arith.sail:43))));(DEF_overload(Id_aux(Operator("*"),../sail/lib/arith.sail:45),[(Id_aux(Id("mult_atom"),../sail/lib/arith.sail:45));(Id_aux(Id("mult_int"),../sail/lib/arith.sail:45))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("print_int"),../sail/lib/arith.sail:47),[_: "print_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/arith.sail:47)),../sail/lib/arith.sail:47));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:47)),../sail/lib/arith.sail:47))],Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/arith.sail:47)),../sail/lib/arith.sail:47),Effect_aux(Effect_set([]),../sail/lib/arith.sail:47)),../sail/lib/arith.sail:47)),../sail/lib/arith.sail:47))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("prerr_int"),../sail/lib/arith.sail:49),[_: "prerr_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/arith.sail:49)),../sail/lib/arith.sail:49));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:49)),../sail/lib/arith.sail:49))],Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/arith.sail:49)),../sail/lib/arith.sail:49),Effect_aux(Effect_set([]),../sail/lib/arith.sail:49)),../sail/lib/arith.sail:49)),../sail/lib/arith.sail:49))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_shl8"),../sail/lib/arith.sail:60),[c: "shl_mach_int",coq: "shl_int_8",_: "shl_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/arith.sail:61),Kid_aux(Var("'n"),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/arith.sail:61),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61),Nexp_aux(Nexp_constant(3),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61))]),../sail/lib/arith.sail:61),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:61),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61))]),../sail/lib/arith.sail:61));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:61),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61))]),../sail/lib/arith.sail:61))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/arith.sail:61),Kid_aux(Var("'m"),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61))],NC_aux(NC_set(Kid_aux(Var("'m"),../sail/lib/arith.sail:61),[(8);(16);(32);(64)]),../sail/lib/arith.sail:61),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:61),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61))]),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61),Effect_aux(Effect_set([]),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61)),../sail/lib/arith.sail:61))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_shl32"),../sail/lib/arith.sail:66),[c: "shl_mach_int",coq: "shl_int_32",_: "shl_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/arith.sail:67),Kid_aux(Var("'n"),../sail/lib/arith.sail:67)),../sail/lib/arith.sail:67)),../sail/lib/arith.sail:67));(QI_aux(QI_constraint(NC_aux(NC_set(Kid_aux(Var("'n"),../sail/lib/arith.sail:67),[(0);(1)]),../sail/lib/arith.sail:67)),../sail/lib/arith.sail:67))]),../sail/lib/arith.sail:67),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:67),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),../sail/lib/arith.sail:67)),../sail/lib/arith.sail:67))]),../sail/lib/arith.sail:67));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:67),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/arith.sail:67)),../sail/lib/arith.sail:67)),../sail/lib/arith.sail:67))]),../sail/lib/arith.sail:67))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/arith.sail:67),Kid_aux(Var("'m"),../sail/lib/arith.sail:67)),../sail/lib/arith.sail:67))],NC_aux(NC_set(Kid_aux(Var("'m"),../sail/lib/arith.sail:67),[(32);(64)]),../sail/lib/arith.sail:67),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:67),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/arith.sail:67)),../sail/lib/arith.sail:67)),../sail/lib/arith.sail:67))]),../sail/lib/arith.sail:67)),../sail/lib/arith.sail:67),Effect_aux(Effect_set([]),../sail/lib/arith.sail:67)),../sail/lib/arith.sail:67)),../sail/lib/arith.sail:67))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_shl_int"),../sail/lib/arith.sail:69),[_: "shl_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:69)),../sail/lib/arith.sail:69));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:69)),../sail/lib/arith.sail:69))],Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:69)),../sail/lib/arith.sail:69),Effect_aux(Effect_set([]),../sail/lib/arith.sail:69)),../sail/lib/arith.sail:69)),../sail/lib/arith.sail:69))));(DEF_overload(Id_aux(Id("shl_int"),../sail/lib/arith.sail:71),[(Id_aux(Id("_shl8"),../sail/lib/arith.sail:71));(Id_aux(Id("_shl32"),../sail/lib/arith.sail:71));(Id_aux(Id("_shl_int"),../sail/lib/arith.sail:71))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_shr32"),../sail/lib/arith.sail:73),[c: "shr_mach_int",coq: "shr_int_32",_: "shr_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/arith.sail:73),Kid_aux(Var("'n"),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/arith.sail:73),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73),Nexp_aux(Nexp_constant(31),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73))]),../sail/lib/arith.sail:73),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:73),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73))]),../sail/lib/arith.sail:73));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:73),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73))]),../sail/lib/arith.sail:73))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/arith.sail:73),Kid_aux(Var("'m"),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/arith.sail:73),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73),Nexp_aux(Nexp_constant(15),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:73),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73))]),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73),Effect_aux(Effect_set([]),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73)),../sail/lib/arith.sail:73))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_shr_int"),../sail/lib/arith.sail:75),[_: "shr_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:75)),../sail/lib/arith.sail:75));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:75)),../sail/lib/arith.sail:75))],Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:75)),../sail/lib/arith.sail:75),Effect_aux(Effect_set([]),../sail/lib/arith.sail:75)),../sail/lib/arith.sail:75)),../sail/lib/arith.sail:75))));(DEF_overload(Id_aux(Id("shr_int"),../sail/lib/arith.sail:77),[(Id_aux(Id("_shr32"),../sail/lib/arith.sail:77));(Id_aux(Id("_shr_int"),../sail/lib/arith.sail:77))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("tdiv_int"),../sail/lib/arith.sail:82),[ocaml: "tdiv_int",interpreter: "tdiv_int",lem: "tdiv_int",c: "tdiv_int",coq: "Z.quot"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:88)),../sail/lib/arith.sail:88));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:88)),../sail/lib/arith.sail:88))],Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:88)),../sail/lib/arith.sail:88),Effect_aux(Effect_set([]),../sail/lib/arith.sail:88)),../sail/lib/arith.sail:88)),../sail/lib/arith.sail:88))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("tmod_int"),../sail/lib/arith.sail:91),[ocaml: "tmod_int",interpreter: "tmod_int",lem: "tmod_int",c: "tmod_int",coq: "Z.rem"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:97)),../sail/lib/arith.sail:97));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:97)),../sail/lib/arith.sail:97))],Typ_aux(Typ_id(Id_aux(Id("nat"),../sail/lib/arith.sail:97)),../sail/lib/arith.sail:97),Effect_aux(Effect_set([]),../sail/lib/arith.sail:97)),../sail/lib/arith.sail:97)),../sail/lib/arith.sail:97))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("abs_int_plain"),../sail/lib/arith.sail:99),[smt: "abs",ocaml: "abs_int",interpreter: "abs_int",lem: "integerAbs",c: "abs_int",coq: "Z.abs"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:106)),../sail/lib/arith.sail:106))],Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/arith.sail:106)),../sail/lib/arith.sail:106),Effect_aux(Effect_set([]),../sail/lib/arith.sail:106)),../sail/lib/arith.sail:106)),../sail/lib/arith.sail:106))));(DEF_overload(Id_aux(Id("abs_int"),../sail/lib/arith.sail:108),[(Id_aux(Id("abs_int_plain"),../sail/lib/arith.sail:108))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("eq_string"),../sail/lib/string.sail:6),[lem: "eq",coq: "generic_eq",_: "eq_string"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:6)),../sail/lib/string.sail:6));(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:6)),../sail/lib/string.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/string.sail:6)),../sail/lib/string.sail:6),Effect_aux(Effect_set([]),../sail/lib/string.sail:6)),../sail/lib/string.sail:6)),../sail/lib/string.sail:6))));(DEF_overload(Id_aux(Operator("=="),../sail/lib/string.sail:8),[(Id_aux(Id("eq_string"),../sail/lib/string.sail:8))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("concat_str"),../sail/lib/string.sail:10),[coq: "String.append",lem: "stringAppend",_: "concat_str"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10));(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10))],Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10),Effect_aux(Effect_set([]),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)),../sail/lib/string.sail:10))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("dec_str"),../sail/lib/string.sail:12),[_: "dec_str"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/string.sail:12)),../sail/lib/string.sail:12))],Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:12)),../sail/lib/string.sail:12),Effect_aux(Effect_set([]),../sail/lib/string.sail:12)),../sail/lib/string.sail:12)),../sail/lib/string.sail:12))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_str"),../sail/lib/string.sail:14),[_: "hex_str"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/string.sail:14)),../sail/lib/string.sail:14))],Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:14)),../sail/lib/string.sail:14),Effect_aux(Effect_set([]),../sail/lib/string.sail:14)),../sail/lib/string.sail:14)),../sail/lib/string.sail:14))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("bits_str"),../sail/lib/string.sail:16),[_: "string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/string.sail:16),Kid_aux(Var("'n"),../sail/lib/string.sail:16)),../sail/lib/string.sail:16)),../sail/lib/string.sail:16))]),../sail/lib/string.sail:16),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/string.sail:16),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/string.sail:16)),../sail/lib/string.sail:16)),../sail/lib/string.sail:16));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/string.sail:16)),../sail/lib/string.sail:16))]),../sail/lib/string.sail:16))],Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:16)),../sail/lib/string.sail:16),Effect_aux(Effect_set([]),../sail/lib/string.sail:16)),../sail/lib/string.sail:16)),../sail/lib/string.sail:16))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("concat_str_bits"),../sail/lib/string.sail:18),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/string.sail:18),Kid_aux(Var("'n"),../sail/lib/string.sail:18)),../sail/lib/string.sail:18)),../sail/lib/string.sail:18))]),../sail/lib/string.sail:18),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:18)),../sail/lib/string.sail:18));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/string.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/string.sail:18)),../sail/lib/string.sail:18)),../sail/lib/string.sail:18));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/string.sail:18)),../sail/lib/string.sail:18))]),../sail/lib/string.sail:18))],Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:18)),../sail/lib/string.sail:18),Effect_aux(Effect_set([]),../sail/lib/string.sail:18)),../sail/lib/string.sail:18)),../sail/lib/string.sail:18))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("concat_str_bits"),../sail/lib/string.sail:20),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("str"),../sail/lib/string.sail:20)),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:18)),../sail/lib/string.sail:18)));(P_aux(P_id(Id_aux(Id("x"),../sail/lib/string.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/string.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/string.sail:18)),../sail/lib/string.sail:18)),../sail/lib/string.sail:18));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/string.sail:18)),../sail/lib/string.sail:18))]),../sail/lib/string.sail:18)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:18)),../sail/lib/string.sail:18));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/string.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/string.sail:18)),../sail/lib/string.sail:18)),../sail/lib/string.sail:18));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/string.sail:18)),../sail/lib/string.sail:18))]),../sail/lib/string.sail:18))]),../sail/lib/string.sail:20)),E_aux(E_app(Id_aux(Id("concat_str"),../sail/lib/string.sail:20),[(E_aux(E_id(Id_aux(Id("str"),../sail/lib/string.sail:20)),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:18)),../sail/lib/string.sail:18)));(E_aux(E_app(Id_aux(Id("bits_str"),../sail/lib/string.sail:20),[(E_aux(E_id(Id_aux(Id("x"),../sail/lib/string.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/string.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/string.sail:18)),../sail/lib/string.sail:18)),../sail/lib/string.sail:18));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/string.sail:18)),../sail/lib/string.sail:18))]),../sail/lib/string.sail:18)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:16)),../sail/lib/string.sail:16)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:18)),../sail/lib/string.sail:18));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/string.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/string.sail:18)),../sail/lib/string.sail:18)),../sail/lib/string.sail:18));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/string.sail:18)),../sail/lib/string.sail:18))]),../sail/lib/string.sail:18))],Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:18)),../sail/lib/string.sail:18),Effect_aux(Effect_set([]),../sail/lib/string.sail:18)),../sail/lib/string.sail:18)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("concat_str_dec"),../sail/lib/string.sail:22),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:22)),../sail/lib/string.sail:22));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/string.sail:22)),../sail/lib/string.sail:22))],Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:22)),../sail/lib/string.sail:22),Effect_aux(Effect_set([]),../sail/lib/string.sail:22)),../sail/lib/string.sail:22)),../sail/lib/string.sail:22))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("concat_str_dec"),../sail/lib/string.sail:24),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("str"),../sail/lib/string.sail:24)),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:22)),../sail/lib/string.sail:22)));(P_aux(P_id(Id_aux(Id("x"),../sail/lib/string.sail:24)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex33#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:22)),../sail/lib/string.sail:22));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex33#"),Unknown)),Unknown)),Unknown))]),Unknown))]),../sail/lib/string.sail:24)),E_aux(E_app(Id_aux(Id("concat_str"),../sail/lib/string.sail:24),[(E_aux(E_id(Id_aux(Id("str"),../sail/lib/string.sail:24)),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:22)),../sail/lib/string.sail:22)));(E_aux(E_app(Id_aux(Id("dec_str"),../sail/lib/string.sail:24),[(E_aux(E_id(Id_aux(Id("x"),../sail/lib/string.sail:24)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex33#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:12)),../sail/lib/string.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:22)),../sail/lib/string.sail:22));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex33#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:22)),../sail/lib/string.sail:22),Effect_aux(Effect_set([]),../sail/lib/string.sail:22)),../sail/lib/string.sail:22)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("print_endline"),../sail/lib/string.sail:26),[_: "print_endline"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:26)),../sail/lib/string.sail:26))],Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/string.sail:26)),../sail/lib/string.sail:26),Effect_aux(Effect_set([]),../sail/lib/string.sail:26)),../sail/lib/string.sail:26)),../sail/lib/string.sail:26))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("prerr_endline"),../sail/lib/string.sail:28),[_: "prerr_endline"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:28)),../sail/lib/string.sail:28))],Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/string.sail:28)),../sail/lib/string.sail:28),Effect_aux(Effect_set([]),../sail/lib/string.sail:28)),../sail/lib/string.sail:28)),../sail/lib/string.sail:28))));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:8),[ocaml: "eq_list",interpreter: "eq_list",lem: "eq_vec",c: "eq_bits",coq: "eq_vec"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:14),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))]),../sail/lib/vector_dec.sail:14),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))));(DEF_overload(Id_aux(Operator("=="),../sail/lib/vector_dec.sail:16),[(Id_aux(Id("eq_bit"),../sail/lib/vector_dec.sail:16));(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:18),[lem: "neq_vec",c: "neq_bits",coq: "neq_vec"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:22),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))]),../sail/lib/vector_dec.sail:22),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:24),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("x"),../sail/lib/vector_dec.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("y"),../sail/lib/vector_dec.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:24)),E_aux(E_app(Id_aux(Id("not_bool"),../sail/lib/vector_dec.sail:24),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:24),[(E_aux(E_id(Id_aux(Id("x"),../sail/lib/vector_dec.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("y"),../sail/lib/vector_dec.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex42#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex42#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),None)));(DEF_overload(Id_aux(Operator("!="),../sail/lib/vector_dec.sail:26),[(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("bitvector_length"),../sail/lib/vector_dec.sail:28),[coq: "length_mword",_: "length"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:28),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:28)),../sail/lib/vector_dec.sail:28)),../sail/lib/vector_dec.sail:28))]),../sail/lib/vector_dec.sail:28),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:28)),../sail/lib/vector_dec.sail:28)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:28),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:28)),../sail/lib/vector_dec.sail:28)),../sail/lib/vector_dec.sail:28))]),../sail/lib/vector_dec.sail:28),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:28)),../sail/lib/vector_dec.sail:28)),../sail/lib/vector_dec.sail:28))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("vector_length"),../sail/lib/vector_dec.sail:30),[ocaml: "length",interpreter: "length",lem: "length_list",c: "length",coq: "vec_length"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:36),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:36)),../sail/lib/vector_dec.sail:36)),../sail/lib/vector_dec.sail:36));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,../sail/lib/vector_dec.sail:36),Kid_aux(Var("'a"),../sail/lib/vector_dec.sail:36)),../sail/lib/vector_dec.sail:36)),../sail/lib/vector_dec.sail:36))]),../sail/lib/vector_dec.sail:36),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("vector"),../sail/lib/vector_dec.sail:36),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:36)),../sail/lib/vector_dec.sail:36)),../sail/lib/vector_dec.sail:36));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:36)),../sail/lib/vector_dec.sail:36));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/vector_dec.sail:36)),../sail/lib/vector_dec.sail:36)),../sail/lib/vector_dec.sail:36))]),../sail/lib/vector_dec.sail:36))],Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:36),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:36)),../sail/lib/vector_dec.sail:36)),../sail/lib/vector_dec.sail:36))]),../sail/lib/vector_dec.sail:36),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:36)),../sail/lib/vector_dec.sail:36)),../sail/lib/vector_dec.sail:36))));(DEF_overload(Id_aux(Id("length"),../sail/lib/vector_dec.sail:38),[(Id_aux(Id("bitvector_length"),../sail/lib/vector_dec.sail:38));(Id_aux(Id("vector_length"),../sail/lib/vector_dec.sail:38))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("count_leading_zeros"),../sail/lib/vector_dec.sail:40),[_: "count_leading_zeros"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:40),Kid_aux(Var("'N"),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40));(QI_aux(QI_constraint(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'N"),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40))]),../sail/lib/vector_dec.sail:40),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'N"),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:40),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:40),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40),Nexp_aux(Nexp_var(Kid_aux(Var("'N"),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:40),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40))]),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40)),../sail/lib/vector_dec.sail:40))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("print_bits"),../sail/lib/vector_dec.sail:49),[_: "print_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:49),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:49)),../sail/lib/vector_dec.sail:49)),../sail/lib/vector_dec.sail:49))]),../sail/lib/vector_dec.sail:49),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/vector_dec.sail:49)),../sail/lib/vector_dec.sail:49));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:49)),../sail/lib/vector_dec.sail:49)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/vector_dec.sail:49)),../sail/lib/vector_dec.sail:49),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:49)),../sail/lib/vector_dec.sail:49)),../sail/lib/vector_dec.sail:49))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("prerr_bits"),../sail/lib/vector_dec.sail:51),[_: "prerr_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:51),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:51)),../sail/lib/vector_dec.sail:51)),../sail/lib/vector_dec.sail:51))]),../sail/lib/vector_dec.sail:51),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/vector_dec.sail:51)),../sail/lib/vector_dec.sail:51));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:51)),../sail/lib/vector_dec.sail:51)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/vector_dec.sail:51)),../sail/lib/vector_dec.sail:51),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:51)),../sail/lib/vector_dec.sail:51)),../sail/lib/vector_dec.sail:51))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sail_sign_extend"),../sail/lib/vector_dec.sail:53),[_: "sign_extend"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:53),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:53));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:53),Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:53));(QI_aux(QI_constraint(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:53),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:53))]),../sail/lib/vector_dec.sail:53),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:53),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:53))]),../sail/lib/vector_dec.sail:53))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:53)),../sail/lib/vector_dec.sail:53))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sail_zero_extend"),../sail/lib/vector_dec.sail:55),[_: "zero_extend"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:55),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:55));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:55),Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:55));(QI_aux(QI_constraint(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:55),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:55))]),../sail/lib/vector_dec.sail:55),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:55),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:55))]),../sail/lib/vector_dec.sail:55))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:55)),../sail/lib/vector_dec.sail:55))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("truncate"),../sail/lib/vector_dec.sail:60),[ocaml: "vector_truncate",interpreter: "vector_truncate",lem: "vector_truncate",coq: "vector_truncate",c: "sail_truncate"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:66),Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:66),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66),Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66))]),../sail/lib/vector_dec.sail:66),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:66),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66))]),../sail/lib/vector_dec.sail:66))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66)),../sail/lib/vector_dec.sail:66))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("truncateLSB"),../sail/lib/vector_dec.sail:71),[ocaml: "vector_truncateLSB",interpreter: "vector_truncateLSB",lem: "vector_truncateLSB",coq: "vector_truncateLSB",c: "sail_truncateLSB"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:77),Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:77),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77),Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77))]),../sail/lib/vector_dec.sail:77),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:77),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77))]),../sail/lib/vector_dec.sail:77))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77)),../sail/lib/vector_dec.sail:77))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sail_mask"),../sail/lib/vector_dec.sail:79),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:79),Kid_aux(Var("'len"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:79),Kid_aux(Var("'v"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'len"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79),Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79),NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'v"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79),Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79))]),../sail/lib/vector_dec.sail:79),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:79),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'len"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79))]),../sail/lib/vector_dec.sail:79));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'v"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'len"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("sail_mask"),../sail/lib/vector_dec.sail:81),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("len"),../sail/lib/vector_dec.sail:81)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'len"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("v"),../sail/lib/vector_dec.sail:81)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'v"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'len"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'v"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:81)),E_aux(E_if(E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_id(Id_aux(Id("len"),../sail/lib/vector_dec.sail:81)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'len"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_length"),../sail/lib/vector_dec.sail:38),[(E_aux(E_id(Id_aux(Id("v"),../sail/lib/vector_dec.sail:81)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'v"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:28),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'v"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:28))]),../sail/lib/vector_dec.sail:28)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:38),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'len"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79),Nexp_aux(Nexp_var(Kid_aux(Var("'v"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))]),../sail/lib/flow.sail:38)),E_aux(E_app(Id_aux(Id("truncate"),../sail/lib/vector_dec.sail:81),[(E_aux(E_id(Id_aux(Id("v"),../sail/lib/vector_dec.sail:81)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'v"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("len"),../sail/lib/vector_dec.sail:81)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'len"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'len"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("sail_zero_extend"),../sail/lib/vector_dec.sail:81),[(E_aux(E_id(Id_aux(Id("v"),../sail/lib/vector_dec.sail:81)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'v"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("len"),../sail/lib/vector_dec.sail:81)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'len"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'len"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'len"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'len"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'v"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'len"),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:79)),../sail/lib/vector_dec.sail:79)))]),None)));(DEF_overload(Id_aux(Operator("^"),../sail/lib/vector_dec.sail:83),[(Id_aux(Id("sail_mask"),../sail/lib/vector_dec.sail:83))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:85),[ocaml: "append",interpreter: "append",lem: "concat_vec",c: "append",coq: "concat_vec"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:85),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:85)),../sail/lib/vector_dec.sail:85)),../sail/lib/vector_dec.sail:85));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:85),Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:85)),../sail/lib/vector_dec.sail:85)),../sail/lib/vector_dec.sail:85))]),../sail/lib/vector_dec.sail:85),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:85-86)),../sail/lib/vector_dec.sail:85-86)),../sail/lib/vector_dec.sail:85-86))));(DEF_overload(Id_aux(Id("append"),../sail/lib/vector_dec.sail:88),[(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("append_64"),../sail/lib/vector_dec.sail:91),[_: "append_64"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:91),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:91)),../sail/lib/vector_dec.sail:91)),../sail/lib/vector_dec.sail:91))]),../sail/lib/vector_dec.sail:91),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:91)),../sail/lib/vector_dec.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),../sail/lib/vector_dec.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:91)),../sail/lib/vector_dec.sail:91),Nexp_aux(Nexp_constant(64),../sail/lib/vector_dec.sail:91)),../sail/lib/vector_dec.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:91)),../sail/lib/vector_dec.sail:91)),../sail/lib/vector_dec.sail:91))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:93),[ocaml: "access",interpreter: "access",lem: "access_vec_dec",coq: "access_vec_dec",c: "vector_access"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:99),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:99),Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:99),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99))]),../sail/lib/vector_dec.sail:99),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:99),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99))]),../sail/lib/vector_dec.sail:99))],Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plain_vector_access"),../sail/lib/vector_dec.sail:101),[ocaml: "access",interpreter: "access",lem: "access_list_dec",coq: "vec_access_dec",c: "vector_access"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:107),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:107),Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,../sail/lib/vector_dec.sail:107),Kid_aux(Var("'a"),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:107),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107))]),../sail/lib/vector_dec.sail:107),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("vector"),../sail/lib/vector_dec.sail:107),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107))]),../sail/lib/vector_dec.sail:107));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:107),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107))]),../sail/lib/vector_dec.sail:107))],Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107)),../sail/lib/vector_dec.sail:107))));(DEF_overload(Id_aux(Id("vector_access"),../sail/lib/vector_dec.sail:109),[(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109));(Id_aux(Id("plain_vector_access"),../sail/lib/vector_dec.sail:109))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("bitvector_update"),../sail/lib/vector_dec.sail:111),[ocaml: "update",interpreter: "update",lem: "update_vec_dec",coq: "update_vec_dec",c: "vector_update"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:117),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:117),Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:117),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117))]),../sail/lib/vector_dec.sail:117),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:117),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117))]),../sail/lib/vector_dec.sail:117));(Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117)),../sail/lib/vector_dec.sail:117))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plain_vector_update"),../sail/lib/vector_dec.sail:119),[ocaml: "update",interpreter: "update",lem: "update_list_dec",coq: "vec_update_dec",c: "vector_update"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:125),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:125),Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,../sail/lib/vector_dec.sail:125),Kid_aux(Var("'a"),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:125),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125))]),../sail/lib/vector_dec.sail:125),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("vector"),../sail/lib/vector_dec.sail:125),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125))]),../sail/lib/vector_dec.sail:125));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:125),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125))]),../sail/lib/vector_dec.sail:125));(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125))],Typ_aux(Typ_app(Id_aux(Id("vector"),../sail/lib/vector_dec.sail:125),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125))]),../sail/lib/vector_dec.sail:125),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125)),../sail/lib/vector_dec.sail:125))));(DEF_overload(Id_aux(Id("vector_update"),../sail/lib/vector_dec.sail:127),[(Id_aux(Id("bitvector_update"),../sail/lib/vector_dec.sail:127));(Id_aux(Id("plain_vector_update"),../sail/lib/vector_dec.sail:127))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:129),[ocaml: "add_vec",interpreter: "add_vec",lem: "add_vec",c: "add_bits",coq: "add_vec"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:135),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:135)),../sail/lib/vector_dec.sail:135)),../sail/lib/vector_dec.sail:135))]),../sail/lib/vector_dec.sail:135),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:135)),../sail/lib/vector_dec.sail:135)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:135)),../sail/lib/vector_dec.sail:135)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:135)),../sail/lib/vector_dec.sail:135)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:135)),../sail/lib/vector_dec.sail:135)),../sail/lib/vector_dec.sail:135))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("add_bits_int"),../sail/lib/vector_dec.sail:137),[ocaml: "add_vec_int",interpreter: "add_vec_int",lem: "add_vec_int",c: "add_bits_int",coq: "add_vec_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:143),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:143)),../sail/lib/vector_dec.sail:143)),../sail/lib/vector_dec.sail:143))]),../sail/lib/vector_dec.sail:143),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:143)),../sail/lib/vector_dec.sail:143)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/vector_dec.sail:143)),../sail/lib/vector_dec.sail:143))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:143)),../sail/lib/vector_dec.sail:143)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:143)),../sail/lib/vector_dec.sail:143)),../sail/lib/vector_dec.sail:143))));(DEF_overload(Id_aux(Operator("+"),../sail/lib/vector_dec.sail:145),[(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145));(Id_aux(Id("add_bits_int"),../sail/lib/vector_dec.sail:145))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sub_bits"),../sail/lib/vector_dec.sail:147),[ocaml: "sub_vec",lem: "sub_vec",c: "sub_bits",coq: "sub_vec"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:152),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:152)),../sail/lib/vector_dec.sail:152)),../sail/lib/vector_dec.sail:152))]),../sail/lib/vector_dec.sail:152),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:152)),../sail/lib/vector_dec.sail:152)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:152)),../sail/lib/vector_dec.sail:152)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:152)),../sail/lib/vector_dec.sail:152)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:152)),../sail/lib/vector_dec.sail:152)),../sail/lib/vector_dec.sail:152))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("not_vec"),../sail/lib/vector_dec.sail:154),[c: "not_bits",_: "not_vec"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:154),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:154)),../sail/lib/vector_dec.sail:154)),../sail/lib/vector_dec.sail:154))]),../sail/lib/vector_dec.sail:154),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:154)),../sail/lib/vector_dec.sail:154)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:154)),../sail/lib/vector_dec.sail:154)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:154)),../sail/lib/vector_dec.sail:154)),../sail/lib/vector_dec.sail:154))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:156),[lem: "and_vec",c: "and_bits",coq: "and_vec",ocaml: "and_vec",interpreter: "and_vec"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:162),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:162)),../sail/lib/vector_dec.sail:162)),../sail/lib/vector_dec.sail:162))]),../sail/lib/vector_dec.sail:162),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:162)),../sail/lib/vector_dec.sail:162)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:162)),../sail/lib/vector_dec.sail:162)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:162)),../sail/lib/vector_dec.sail:162)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:162)),../sail/lib/vector_dec.sail:162)),../sail/lib/vector_dec.sail:162))));(DEF_overload(Id_aux(Operator("&"),../sail/lib/vector_dec.sail:164),[(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("or_vec"),../sail/lib/vector_dec.sail:166),[lem: "or_vec",c: "or_bits",coq: "or_vec",ocaml: "or_vec",interpreter: "or_vec"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:172),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:172)),../sail/lib/vector_dec.sail:172)),../sail/lib/vector_dec.sail:172))]),../sail/lib/vector_dec.sail:172),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:172)),../sail/lib/vector_dec.sail:172)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:172)),../sail/lib/vector_dec.sail:172)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:172)),../sail/lib/vector_dec.sail:172)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:172)),../sail/lib/vector_dec.sail:172)),../sail/lib/vector_dec.sail:172))));(DEF_overload(Id_aux(Operator("|"),../sail/lib/vector_dec.sail:174),[(Id_aux(Id("or_vec"),../sail/lib/vector_dec.sail:174))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("vector_subrange"),../sail/lib/vector_dec.sail:176),[ocaml: "subrange",interpreter: "subrange",lem: "subrange_vec_dec",c: "vector_subrange",coq: "subrange_vec_dec"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:182),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:182),Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:182),Kid_aux(Var("'o"),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:182),Nexp_aux(Nexp_var(Kid_aux(Var("'o"),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182),NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'o"),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182)),../sail/lib/vector_dec.sail:182))]),../sail/lib/vector_dec.sail:182),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:183),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183))]),../sail/lib/vector_dec.sail:183));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:183),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'o"),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183))]),../sail/lib/vector_dec.sail:183))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_var(Kid_aux(Var("'o"),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:182-183)),../sail/lib/vector_dec.sail:182-183)),../sail/lib/vector_dec.sail:182-183))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("vector_update_subrange"),../sail/lib/vector_dec.sail:185),[ocaml: "update_subrange",interpreter: "update_subrange",lem: "update_subrange_vec_dec",c: "vector_update_subrange",coq: "update_subrange_vec_dec"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:191),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:191),Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:191),Kid_aux(Var("'o"),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:191),Nexp_aux(Nexp_var(Kid_aux(Var("'o"),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191),NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'o"),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191))]),../sail/lib/vector_dec.sail:191),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:191),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191))]),../sail/lib/vector_dec.sail:191));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:191),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'o"),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191))]),../sail/lib/vector_dec.sail:191));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'o"),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sail_shiftleft"),../sail/lib/vector_dec.sail:193),[_: "shiftl"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:193),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:193)),../sail/lib/vector_dec.sail:193)),../sail/lib/vector_dec.sail:193));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_order,../sail/lib/vector_dec.sail:193),Kid_aux(Var("'ord"),../sail/lib/vector_dec.sail:193)),../sail/lib/vector_dec.sail:193)),../sail/lib/vector_dec.sail:193))]),../sail/lib/vector_dec.sail:193),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:194),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:194)),../sail/lib/vector_dec.sail:194)),../sail/lib/vector_dec.sail:194));(A_aux(A_order(Ord_aux(Ord_var(Kid_aux(Var("'ord"),../sail/lib/vector_dec.sail:194)),../sail/lib/vector_dec.sail:194)),../sail/lib/vector_dec.sail:194))]),../sail/lib/vector_dec.sail:194));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/vector_dec.sail:194)),../sail/lib/vector_dec.sail:194))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:194),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:194)),../sail/lib/vector_dec.sail:194)),../sail/lib/vector_dec.sail:194));(A_aux(A_order(Ord_aux(Ord_var(Kid_aux(Var("'ord"),../sail/lib/vector_dec.sail:194)),../sail/lib/vector_dec.sail:194)),../sail/lib/vector_dec.sail:194))]),../sail/lib/vector_dec.sail:194),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:194)),../sail/lib/vector_dec.sail:193-194)),../sail/lib/vector_dec.sail:193-194))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sail_shiftright"),../sail/lib/vector_dec.sail:196),[_: "shiftr"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:196),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:196)),../sail/lib/vector_dec.sail:196)),../sail/lib/vector_dec.sail:196));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_order,../sail/lib/vector_dec.sail:196),Kid_aux(Var("'ord"),../sail/lib/vector_dec.sail:196)),../sail/lib/vector_dec.sail:196)),../sail/lib/vector_dec.sail:196))]),../sail/lib/vector_dec.sail:196),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:197),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:197)),../sail/lib/vector_dec.sail:197)),../sail/lib/vector_dec.sail:197));(A_aux(A_order(Ord_aux(Ord_var(Kid_aux(Var("'ord"),../sail/lib/vector_dec.sail:197)),../sail/lib/vector_dec.sail:197)),../sail/lib/vector_dec.sail:197))]),../sail/lib/vector_dec.sail:197));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/vector_dec.sail:197)),../sail/lib/vector_dec.sail:197))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:197),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:197)),../sail/lib/vector_dec.sail:197)),../sail/lib/vector_dec.sail:197));(A_aux(A_order(Ord_aux(Ord_var(Kid_aux(Var("'ord"),../sail/lib/vector_dec.sail:197)),../sail/lib/vector_dec.sail:197)),../sail/lib/vector_dec.sail:197))]),../sail/lib/vector_dec.sail:197),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:197)),../sail/lib/vector_dec.sail:196-197)),../sail/lib/vector_dec.sail:196-197))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sail_arith_shiftright"),../sail/lib/vector_dec.sail:199),[_: "arith_shiftr"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:199),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:199)),../sail/lib/vector_dec.sail:199)),../sail/lib/vector_dec.sail:199));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_order,../sail/lib/vector_dec.sail:199),Kid_aux(Var("'ord"),../sail/lib/vector_dec.sail:199)),../sail/lib/vector_dec.sail:199)),../sail/lib/vector_dec.sail:199))]),../sail/lib/vector_dec.sail:199),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:200),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:200)),../sail/lib/vector_dec.sail:200)),../sail/lib/vector_dec.sail:200));(A_aux(A_order(Ord_aux(Ord_var(Kid_aux(Var("'ord"),../sail/lib/vector_dec.sail:200)),../sail/lib/vector_dec.sail:200)),../sail/lib/vector_dec.sail:200))]),../sail/lib/vector_dec.sail:200));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/vector_dec.sail:200)),../sail/lib/vector_dec.sail:200))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:200),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:200)),../sail/lib/vector_dec.sail:200)),../sail/lib/vector_dec.sail:200));(A_aux(A_order(Ord_aux(Ord_var(Kid_aux(Var("'ord"),../sail/lib/vector_dec.sail:200)),../sail/lib/vector_dec.sail:200)),../sail/lib/vector_dec.sail:200))]),../sail/lib/vector_dec.sail:200),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:200)),../sail/lib/vector_dec.sail:199-200)),../sail/lib/vector_dec.sail:199-200))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sail_zeros"),../sail/lib/vector_dec.sail:202),[_: "zeros"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:202),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:202)),../sail/lib/vector_dec.sail:202)),../sail/lib/vector_dec.sail:202));(QI_aux(QI_constraint(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:202)),../sail/lib/vector_dec.sail:202),Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:202)),../sail/lib/vector_dec.sail:202)),../sail/lib/vector_dec.sail:202))]),../sail/lib/vector_dec.sail:202),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:202),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:202)),../sail/lib/vector_dec.sail:202)),../sail/lib/vector_dec.sail:202))]),../sail/lib/vector_dec.sail:202))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:202)),../sail/lib/vector_dec.sail:202)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:202)),../sail/lib/vector_dec.sail:202)),../sail/lib/vector_dec.sail:202))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sail_ones"),../sail/lib/vector_dec.sail:204),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:204),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204));(QI_aux(QI_constraint(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204),Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204))]),../sail/lib/vector_dec.sail:204),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:204),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204))]),../sail/lib/vector_dec.sail:204))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("sail_ones"),../sail/lib/vector_dec.sail:206),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("n"),../sail/lib/vector_dec.sail:206)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("not_vec"),../sail/lib/vector_dec.sail:206),[(E_aux(E_app(Id_aux(Id("sail_zeros"),../sail/lib/vector_dec.sail:206),[(E_aux(E_id(Id_aux(Id("n"),../sail/lib/vector_dec.sail:206)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:204)),../sail/lib/vector_dec.sail:204)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("slice"),../sail/lib/vector_dec.sail:210),[_: "slice"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:210),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:210)),../sail/lib/vector_dec.sail:210)),../sail/lib/vector_dec.sail:210));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:210),Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:210)),../sail/lib/vector_dec.sail:210)),../sail/lib/vector_dec.sail:210));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:210),Kid_aux(Var("'o"),../sail/lib/vector_dec.sail:210)),../sail/lib/vector_dec.sail:210)),../sail/lib/vector_dec.sail:210));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:210),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:210)),../sail/lib/vector_dec.sail:210)),../sail/lib/vector_dec.sail:210),NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:210),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:210)),../sail/lib/vector_dec.sail:210)),../sail/lib/vector_dec.sail:210)),../sail/lib/vector_dec.sail:210)),../sail/lib/vector_dec.sail:210))]),../sail/lib/vector_dec.sail:210),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:211)),../sail/lib/vector_dec.sail:211)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:211),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'o"),../sail/lib/vector_dec.sail:211)),../sail/lib/vector_dec.sail:211)),../sail/lib/vector_dec.sail:211))]),../sail/lib/vector_dec.sail:211));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:211),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:211)),../sail/lib/vector_dec.sail:211)),../sail/lib/vector_dec.sail:211))]),../sail/lib/vector_dec.sail:211))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:211)),../sail/lib/vector_dec.sail:211)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:210-211)),../sail/lib/vector_dec.sail:210-211)),../sail/lib/vector_dec.sail:210-211))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("replicate_bits"),../sail/lib/vector_dec.sail:213),[_: "replicate_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:213),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:213)),../sail/lib/vector_dec.sail:213)),../sail/lib/vector_dec.sail:213));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:213),Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:213)),../sail/lib/vector_dec.sail:213)),../sail/lib/vector_dec.sail:213))]),../sail/lib/vector_dec.sail:213),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:213)),../sail/lib/vector_dec.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:213),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:213)),../sail/lib/vector_dec.sail:213)),../sail/lib/vector_dec.sail:213))]),../sail/lib/vector_dec.sail:213))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:213)),../sail/lib/vector_dec.sail:213),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:213)),../sail/lib/vector_dec.sail:213)),../sail/lib/vector_dec.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:213)),../sail/lib/vector_dec.sail:213)),../sail/lib/vector_dec.sail:213))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("slice_mask"),../sail/lib/vector_dec.sail:215),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:215),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215));(QI_aux(QI_constraint(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215),Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215))]),../sail/lib/vector_dec.sail:215),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("implicit"),../sail/lib/vector_dec.sail:215),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215))]),../sail/lib/vector_dec.sail:215));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("slice_mask"),../sail/lib/vector_dec.sail:216),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("n"),../sail/lib/vector_dec.sail:216)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("i"),../sail/lib/vector_dec.sail:216)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex152#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("l"),../sail/lib/vector_dec.sail:216)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex153#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215))]),../sail/lib/vector_dec.sail:215));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex152#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex153#"),Unknown)),Unknown)),Unknown))]),Unknown))]),../sail/lib/vector_dec.sail:216-222)),E_aux(E_if(E_aux(E_app(Id_aux(Id("gteq_int"),../sail/lib/flow.sail:50),[(E_aux(E_id(Id_aux(Id("l"),../sail/lib/vector_dec.sail:217)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex153#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("n"),../sail/lib/vector_dec.sail:217)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:39),[(A_aux(A_bool(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'ex153#"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/flow.sail:39)),../sail/lib/flow.sail:39))]),../sail/lib/flow.sail:39)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("sail_shiftleft"),../sail/lib/vector_dec.sail:218),[(E_aux(E_app(Id_aux(Id("sail_ones"),../sail/lib/vector_dec.sail:218),[(E_aux(E_id(Id_aux(Id("n"),../sail/lib/vector_dec.sail:218)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("i"),../sail/lib/vector_dec.sail:218)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex152#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:194),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:194));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:194)),../sail/lib/vector_dec.sail:194))]),../sail/lib/vector_dec.sail:194)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),../sail/lib/vector_dec.sail:220),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:220)),../sail/lib/vector_dec.sail:220)),../sail/lib/vector_dec.sail:220))]),../sail/lib/vector_dec.sail:220),P_aux(P_id(Id_aux(Id("one"),../sail/lib/vector_dec.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:220)),../sail/lib/vector_dec.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:220)),../sail/lib/vector_dec.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("sail_mask"),../sail/lib/vector_dec.sail:220),[(E_aux(E_id(Id_aux(Id("n"),../sail/lib/vector_dec.sail:220)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),Unknown))]),Unknown)));(E_aux(E_cast(Typ_aux(Typ_app(Id_aux(Id("bits"),../sail/lib/vector_dec.sail:220),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:220)),../sail/lib/vector_dec.sail:220))]),../sail/lib/vector_dec.sail:220),E_aux(E_vector([(E_aux(E_lit(L_aux(L_one,../sail/lib/vector_dec.sail:220)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:220)),../sail/lib/vector_dec.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_app(Id_aux(Id("sail_shiftleft"),../sail/lib/vector_dec.sail:221),[(E_aux(E_app(Id_aux(Id("sub_bits"),../sail/lib/vector_dec.sail:221),[(E_aux(E_app(Id_aux(Id("sail_shiftleft"),../sail/lib/vector_dec.sail:221),[(E_aux(E_id(Id_aux(Id("one"),../sail/lib/vector_dec.sail:221)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:220)),../sail/lib/vector_dec.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("l"),../sail/lib/vector_dec.sail:221)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex153#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:194),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:194));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:194)),../sail/lib/vector_dec.sail:194))]),../sail/lib/vector_dec.sail:194)));(E_aux(E_id(Id_aux(Id("one"),../sail/lib/vector_dec.sail:221)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:220)),../sail/lib/vector_dec.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("i"),../sail/lib/vector_dec.sail:221)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex152#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:194),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:194));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:194)),../sail/lib/vector_dec.sail:194))]),../sail/lib/vector_dec.sail:194))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("implicit"),../sail/lib/vector_dec.sail:215),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215))]),../sail/lib/vector_dec.sail:215));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex152#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex153#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:215)),../sail/lib/vector_dec.sail:215)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("get_slice_int"),../sail/lib/vector_dec.sail:224),[_: "get_slice_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:224),Kid_aux(Var("'w"),../sail/lib/vector_dec.sail:224)),../sail/lib/vector_dec.sail:224)),../sail/lib/vector_dec.sail:224))]),../sail/lib/vector_dec.sail:224),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:224),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'w"),../sail/lib/vector_dec.sail:224)),../sail/lib/vector_dec.sail:224)),../sail/lib/vector_dec.sail:224))]),../sail/lib/vector_dec.sail:224));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/vector_dec.sail:224)),../sail/lib/vector_dec.sail:224));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/vector_dec.sail:224)),../sail/lib/vector_dec.sail:224))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'w"),../sail/lib/vector_dec.sail:224)),../sail/lib/vector_dec.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:224)),../sail/lib/vector_dec.sail:224)),../sail/lib/vector_dec.sail:224))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("set_slice_int"),../sail/lib/vector_dec.sail:226),[_: "set_slice_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:226),Kid_aux(Var("'w"),../sail/lib/vector_dec.sail:226)),../sail/lib/vector_dec.sail:226)),../sail/lib/vector_dec.sail:226))]),../sail/lib/vector_dec.sail:226),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:226),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'w"),../sail/lib/vector_dec.sail:226)),../sail/lib/vector_dec.sail:226)),../sail/lib/vector_dec.sail:226))]),../sail/lib/vector_dec.sail:226));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/vector_dec.sail:226)),../sail/lib/vector_dec.sail:226));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/vector_dec.sail:226)),../sail/lib/vector_dec.sail:226));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'w"),../sail/lib/vector_dec.sail:226)),../sail/lib/vector_dec.sail:226)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/vector_dec.sail:226)),../sail/lib/vector_dec.sail:226),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:226)),../sail/lib/vector_dec.sail:226)),../sail/lib/vector_dec.sail:226))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("set_slice_bits"),../sail/lib/vector_dec.sail:228),[_: "set_slice"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:228),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:228)),../sail/lib/vector_dec.sail:228)),../sail/lib/vector_dec.sail:228));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:228),Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:228)),../sail/lib/vector_dec.sail:228)),../sail/lib/vector_dec.sail:228))]),../sail/lib/vector_dec.sail:228),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:229),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:229)),../sail/lib/vector_dec.sail:229)),../sail/lib/vector_dec.sail:229))]),../sail/lib/vector_dec.sail:229));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:229),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:229)),../sail/lib/vector_dec.sail:229)),../sail/lib/vector_dec.sail:229))]),../sail/lib/vector_dec.sail:229));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:229)),../sail/lib/vector_dec.sail:229)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("int"),../sail/lib/vector_dec.sail:229)),../sail/lib/vector_dec.sail:229));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),../sail/lib/vector_dec.sail:229)),../sail/lib/vector_dec.sail:229)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:229)),../sail/lib/vector_dec.sail:229)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:228-229)),../sail/lib/vector_dec.sail:228-229)),../sail/lib/vector_dec.sail:228-229))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("unsigned"),../sail/lib/vector_dec.sail:234),[ocaml: "uint",lem: "uint",interpreter: "uint",c: "sail_unsigned",coq: "uint"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:240),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("signed"),../sail/lib/vector_dec.sail:246),[c: "sail_signed",_: "sint"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/vector_dec.sail:249),Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(QI_aux(QI_constraint(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249),Effect_aux(Effect_set([]),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))));(DEF_overload(Id_aux(Id("__size"),../sail/lib/vector_dec.sail:251),[(Id_aux(Id("__id"),../sail/lib/vector_dec.sail:251));(Id_aux(Id("bitvector_length"),../sail/lib/vector_dec.sail:251))]));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_regfp"),../sail/lib/regfp.sail:10),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),../sail/lib/regfp.sail:10),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_regfp"),../sail/lib/regfp.sail:10),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("nat"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_u_1"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("nat"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("nat"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("nat"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_u_0"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("nat"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("nat"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12),P_aux(P_id(Id_aux(Id("u_3"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12))),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12),P_aux(P_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12))),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("RFull"),../sail/lib/regfp.sail:11),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)));(E_aux(E_app(Id_aux(Id("RSlice"),../sail/lib/regfp.sail:12),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12)));(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_u_1"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_u_0"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12));(Typ_aux(Typ_id(Id_aux(Id("nat"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12));(Typ_aux(Typ_id(Id_aux(Id("nat"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12))]),../sail/lib/regfp.sail:12)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)));(E_aux(E_app(Id_aux(Id("RSliceBit"),../sail/lib/regfp.sail:13),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12)));(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_u_0"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:13)),../sail/lib/regfp.sail:13));(Typ_aux(Typ_id(Id_aux(Id("nat"),../sail/lib/regfp.sail:13)),../sail/lib/regfp.sail:13))]),../sail/lib/regfp.sail:13)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)));(E_aux(E_app(Id_aux(Id("RField"),../sail/lib/regfp.sail:14),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("u_3"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12)));(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:12)),../sail/lib/regfp.sail:12)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:14)),../sail/lib/regfp.sail:14));(Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/regfp.sail:14)),../sail/lib/regfp.sail:14))]),../sail/lib/regfp.sail:14)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10)),:1))),Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_niafp"),../sail/lib/regfp.sail:19),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),../sail/lib/regfp.sail:19),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:19)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_niafp"),../sail/lib/regfp.sail:19),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:20)),../sail/lib/regfp.sail:20),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:20)),../sail/lib/regfp.sail:20))),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:20)),../sail/lib/regfp.sail:20)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:20)),../sail/lib/regfp.sail:20))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),../sail/lib/regfp.sail:21),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),../sail/lib/regfp.sail:21)),../sail/lib/regfp.sail:21))]),../sail/lib/regfp.sail:21),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),../sail/lib/regfp.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),../sail/lib/regfp.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),../sail/lib/regfp.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("NIAFP_successor"),../sail/lib/regfp.sail:20),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:20)),../sail/lib/regfp.sail:20)))]),Typ_aux(Typ_app(Id_aux(Id("niafp"),../sail/lib/regfp.sail:19),[]),Unknown)));(E_aux(E_app(Id_aux(Id("NIAFP_concrete_address"),../sail/lib/regfp.sail:21),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),../sail/lib/regfp.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("niafp"),../sail/lib/regfp.sail:19),[]),Unknown)));(E_aux(E_app(Id_aux(Id("NIAFP_indirect_address"),../sail/lib/regfp.sail:22),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:20)),../sail/lib/regfp.sail:20)))]),Typ_aux(Typ_app(Id_aux(Id("niafp"),../sail/lib/regfp.sail:19),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:19)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:19)),:1))),Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:19)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:19)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:19)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_diafp"),../sail/lib/regfp.sail:28),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),../sail/lib/regfp.sail:28),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("diafp"),../sail/lib/regfp.sail:28)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_diafp"),../sail/lib/regfp.sail:28),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:31)),../sail/lib/regfp.sail:31),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:31)),../sail/lib/regfp.sail:31))),Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:31)),../sail/lib/regfp.sail:31)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:31)),../sail/lib/regfp.sail:31))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:29)),../sail/lib/regfp.sail:29),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:29)),../sail/lib/regfp.sail:29))),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:29)),../sail/lib/regfp.sail:29)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:29)),../sail/lib/regfp.sail:29))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),../sail/lib/regfp.sail:30),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),../sail/lib/regfp.sail:30)),../sail/lib/regfp.sail:30))]),../sail/lib/regfp.sail:30),P_aux(P_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),../sail/lib/regfp.sail:30)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),../sail/lib/regfp.sail:30)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),../sail/lib/regfp.sail:30)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("DIAFP_none"),../sail/lib/regfp.sail:29),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:29)),../sail/lib/regfp.sail:29)))]),Typ_aux(Typ_app(Id_aux(Id("diafp"),../sail/lib/regfp.sail:28),[]),Unknown)));(E_aux(E_app(Id_aux(Id("DIAFP_concrete"),../sail/lib/regfp.sail:30),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),../sail/lib/regfp.sail:30)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("diafp"),../sail/lib/regfp.sail:28),[]),Unknown)));(E_aux(E_app(Id_aux(Id("DIAFP_reg"),../sail/lib/regfp.sail:31),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:31)),../sail/lib/regfp.sail:31)))]),Typ_aux(Typ_app(Id_aux(Id("diafp"),../sail/lib/regfp.sail:28),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("diafp"),../sail/lib/regfp.sail:28)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("diafp"),../sail/lib/regfp.sail:28)),:1))),Typ_aux(Typ_id(Id_aux(Id("diafp"),../sail/lib/regfp.sail:28)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("diafp"),../sail/lib/regfp.sail:28)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("diafp"),../sail/lib/regfp.sail:28)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("diafp"),../sail/lib/regfp.sail:28)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("read_kind_of_num"),../sail/lib/regfp.sail:34),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(11),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("read_kind_of_num"),../sail/lib/regfp.sail:34),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Read_plain"),../sail/lib/regfp.sail:35)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Read_reserve"),../sail/lib/regfp.sail:36)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Read_acquire"),../sail/lib/regfp.sail:37)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Read_exclusive"),../sail/lib/regfp.sail:38)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Read_exclusive_acquire"),../sail/lib/regfp.sail:39)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(5),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Read_stream"),../sail/lib/regfp.sail:40)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(6),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Read_RISCV_acquire"),../sail/lib/regfp.sail:41)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(7),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Read_RISCV_strong_acquire"),../sail/lib/regfp.sail:42)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Read_RISCV_reserved"),../sail/lib/regfp.sail:43)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(9),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Read_RISCV_reserved_acquire"),../sail/lib/regfp.sail:44)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(10),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Read_RISCV_reserved_strong_acquire"),../sail/lib/regfp.sail:45)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Read_X86_locked"),../sail/lib/regfp.sail:46)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_read_kind"),../sail/lib/regfp.sail:34),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(11),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_read_kind"),../sail/lib/regfp.sail:34),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Read_plain"),../sail/lib/regfp.sail:35)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Read_reserve"),../sail/lib/regfp.sail:36)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Read_acquire"),../sail/lib/regfp.sail:37)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Read_exclusive"),../sail/lib/regfp.sail:38)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)),E_aux(E_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Read_exclusive_acquire"),../sail/lib/regfp.sail:39)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)),E_aux(E_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Read_stream"),../sail/lib/regfp.sail:40)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)),E_aux(E_lit(L_aux(L_num(5),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Read_RISCV_acquire"),../sail/lib/regfp.sail:41)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)),E_aux(E_lit(L_aux(L_num(6),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Read_RISCV_strong_acquire"),../sail/lib/regfp.sail:42)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)),E_aux(E_lit(L_aux(L_num(7),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Read_RISCV_reserved"),../sail/lib/regfp.sail:43)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)),E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Read_RISCV_reserved_acquire"),../sail/lib/regfp.sail:44)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)),E_aux(E_lit(L_aux(L_num(9),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Read_RISCV_reserved_strong_acquire"),../sail/lib/regfp.sail:45)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)),E_aux(E_lit(L_aux(L_num(10),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Read_X86_locked"),../sail/lib/regfp.sail:46)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)),E_aux(E_lit(L_aux(L_num(11),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(11),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(11),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_read_kind"),../sail/lib/regfp.sail:34),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("read_kind"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_read_kind"),../sail/lib/regfp.sail:34),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("Read_plain"),../sail/lib/regfp.sail:35)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)));(E_aux(E_id(Id_aux(Id("Read_reserve"),../sail/lib/regfp.sail:36)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)));(E_aux(E_id(Id_aux(Id("Read_acquire"),../sail/lib/regfp.sail:37)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)));(E_aux(E_id(Id_aux(Id("Read_exclusive"),../sail/lib/regfp.sail:38)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)));(E_aux(E_id(Id_aux(Id("Read_exclusive_acquire"),../sail/lib/regfp.sail:39)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)));(E_aux(E_id(Id_aux(Id("Read_stream"),../sail/lib/regfp.sail:40)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)));(E_aux(E_id(Id_aux(Id("Read_RISCV_acquire"),../sail/lib/regfp.sail:41)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)));(E_aux(E_id(Id_aux(Id("Read_RISCV_strong_acquire"),../sail/lib/regfp.sail:42)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)));(E_aux(E_id(Id_aux(Id("Read_RISCV_reserved"),../sail/lib/regfp.sail:43)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)));(E_aux(E_id(Id_aux(Id("Read_RISCV_reserved_acquire"),../sail/lib/regfp.sail:44)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)));(E_aux(E_id(Id_aux(Id("Read_RISCV_reserved_strong_acquire"),../sail/lib/regfp.sail:45)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)));(E_aux(E_id(Id_aux(Id("Read_X86_locked"),../sail/lib/regfp.sail:46)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("read_kind"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("read_kind"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("write_kind_of_num"),../sail/lib/regfp.sail:49),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(10),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("write_kind_of_num"),../sail/lib/regfp.sail:49),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Write_plain"),../sail/lib/regfp.sail:50)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Write_conditional"),../sail/lib/regfp.sail:51)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Write_release"),../sail/lib/regfp.sail:52)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Write_exclusive"),../sail/lib/regfp.sail:53)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Write_exclusive_release"),../sail/lib/regfp.sail:54)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(5),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Write_RISCV_release"),../sail/lib/regfp.sail:55)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(6),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Write_RISCV_strong_release"),../sail/lib/regfp.sail:56)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(7),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Write_RISCV_conditional"),../sail/lib/regfp.sail:57)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Write_RISCV_conditional_release"),../sail/lib/regfp.sail:58)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(9),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Write_RISCV_conditional_strong_release"),../sail/lib/regfp.sail:59)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Write_X86_locked"),../sail/lib/regfp.sail:60)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_write_kind"),../sail/lib/regfp.sail:49),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(10),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_write_kind"),../sail/lib/regfp.sail:49),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Write_plain"),../sail/lib/regfp.sail:50)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Write_conditional"),../sail/lib/regfp.sail:51)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Write_release"),../sail/lib/regfp.sail:52)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Write_exclusive"),../sail/lib/regfp.sail:53)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)),E_aux(E_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Write_exclusive_release"),../sail/lib/regfp.sail:54)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)),E_aux(E_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Write_RISCV_release"),../sail/lib/regfp.sail:55)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)),E_aux(E_lit(L_aux(L_num(5),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Write_RISCV_strong_release"),../sail/lib/regfp.sail:56)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)),E_aux(E_lit(L_aux(L_num(6),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Write_RISCV_conditional"),../sail/lib/regfp.sail:57)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)),E_aux(E_lit(L_aux(L_num(7),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Write_RISCV_conditional_release"),../sail/lib/regfp.sail:58)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)),E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Write_RISCV_conditional_strong_release"),../sail/lib/regfp.sail:59)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)),E_aux(E_lit(L_aux(L_num(9),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Write_X86_locked"),../sail/lib/regfp.sail:60)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)),E_aux(E_lit(L_aux(L_num(10),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(10),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(10),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_write_kind"),../sail/lib/regfp.sail:49),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("write_kind"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_write_kind"),../sail/lib/regfp.sail:49),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("Write_plain"),../sail/lib/regfp.sail:50)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("Write_conditional"),../sail/lib/regfp.sail:51)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("Write_release"),../sail/lib/regfp.sail:52)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("Write_exclusive"),../sail/lib/regfp.sail:53)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("Write_exclusive_release"),../sail/lib/regfp.sail:54)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("Write_RISCV_release"),../sail/lib/regfp.sail:55)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("Write_RISCV_strong_release"),../sail/lib/regfp.sail:56)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional"),../sail/lib/regfp.sail:57)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional_release"),../sail/lib/regfp.sail:58)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional_strong_release"),../sail/lib/regfp.sail:59)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("Write_X86_locked"),../sail/lib/regfp.sail:60)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("write_kind"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("write_kind"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("write_kind"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("a64_barrier_domain_of_num"),../sail/lib/regfp.sail:63),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("a64_barrier_domain_of_num"),../sail/lib/regfp.sail:63),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("A64_FullShare"),../sail/lib/regfp.sail:64)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("A64_InnerShare"),../sail/lib/regfp.sail:65)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("A64_OuterShare"),../sail/lib/regfp.sail:66)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("A64_NonShare"),../sail/lib/regfp.sail:67)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_a64_barrier_domain"),../sail/lib/regfp.sail:63),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_a64_barrier_domain"),../sail/lib/regfp.sail:63),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("A64_FullShare"),../sail/lib/regfp.sail:64)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("A64_InnerShare"),../sail/lib/regfp.sail:65)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("A64_OuterShare"),../sail/lib/regfp.sail:66)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("A64_NonShare"),../sail/lib/regfp.sail:67)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown)),E_aux(E_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_a64_barrier_domain"),../sail/lib/regfp.sail:63),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_a64_barrier_domain"),../sail/lib/regfp.sail:63),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("A64_FullShare"),../sail/lib/regfp.sail:64)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown)));(E_aux(E_id(Id_aux(Id("A64_InnerShare"),../sail/lib/regfp.sail:65)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown)));(E_aux(E_id(Id_aux(Id("A64_OuterShare"),../sail/lib/regfp.sail:66)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown)));(E_aux(E_id(Id_aux(Id("A64_NonShare"),../sail/lib/regfp.sail:67)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:63)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("a64_barrier_type_of_num"),../sail/lib/regfp.sail:70),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("a64_barrier_type_of_num"),../sail/lib/regfp.sail:70),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("A64_barrier_all"),../sail/lib/regfp.sail:71)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("A64_barrier_LD"),../sail/lib/regfp.sail:72)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("A64_barrier_ST"),../sail/lib/regfp.sail:73)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_a64_barrier_type"),../sail/lib/regfp.sail:70),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_a64_barrier_type"),../sail/lib/regfp.sail:70),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("A64_barrier_all"),../sail/lib/regfp.sail:71)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("A64_barrier_LD"),../sail/lib/regfp.sail:72)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("A64_barrier_ST"),../sail/lib/regfp.sail:73)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_a64_barrier_type"),../sail/lib/regfp.sail:70),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_a64_barrier_type"),../sail/lib/regfp.sail:70),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("A64_barrier_all"),../sail/lib/regfp.sail:71)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown)));(E_aux(E_id(Id_aux(Id("A64_barrier_LD"),../sail/lib/regfp.sail:72)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown)));(E_aux(E_id(Id_aux(Id("A64_barrier_ST"),../sail/lib/regfp.sail:73)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:70)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_barrier_kind"),../sail/lib/regfp.sail:76),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),../sail/lib/regfp.sail:76),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_barrier_kind"),../sail/lib/regfp.sail:76),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:81)),../sail/lib/regfp.sail:81),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:81)),../sail/lib/regfp.sail:81))),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:81)),../sail/lib/regfp.sail:81)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:81)),../sail/lib/regfp.sail:81))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:81)),../sail/lib/regfp.sail:81),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:81)),../sail/lib/regfp.sail:81))),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:81)),../sail/lib/regfp.sail:81)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:81)),../sail/lib/regfp.sail:81))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77),P_aux(P_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77))),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("Barrier_Sync"),../sail/lib/regfp.sail:77),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_LwSync"),../sail/lib/regfp.sail:78),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_Eieio"),../sail/lib/regfp.sail:79),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_Isync"),../sail/lib/regfp.sail:80),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_DMB"),../sail/lib/regfp.sail:81),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:81)),../sail/lib/regfp.sail:81)));(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:81)),../sail/lib/regfp.sail:81)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:81)),../sail/lib/regfp.sail:81));(Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:81)),../sail/lib/regfp.sail:81))]),../sail/lib/regfp.sail:81)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_DSB"),../sail/lib/regfp.sail:82),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:81)),../sail/lib/regfp.sail:81)));(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:81)),../sail/lib/regfp.sail:81)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("a64_barrier_domain"),../sail/lib/regfp.sail:82)),../sail/lib/regfp.sail:82));(Typ_aux(Typ_id(Id_aux(Id("a64_barrier_type"),../sail/lib/regfp.sail:82)),../sail/lib/regfp.sail:82))]),../sail/lib/regfp.sail:82)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_ISB"),../sail/lib/regfp.sail:83),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_MIPS_SYNC"),../sail/lib/regfp.sail:84),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_RISCV_rw_rw"),../sail/lib/regfp.sail:85),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_RISCV_r_rw"),../sail/lib/regfp.sail:86),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_RISCV_r_r"),../sail/lib/regfp.sail:87),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_RISCV_rw_w"),../sail/lib/regfp.sail:88),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_RISCV_w_w"),../sail/lib/regfp.sail:89),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_RISCV_w_rw"),../sail/lib/regfp.sail:90),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_RISCV_rw_r"),../sail/lib/regfp.sail:91),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_RISCV_r_w"),../sail/lib/regfp.sail:92),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_RISCV_w_r"),../sail/lib/regfp.sail:93),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_RISCV_tso"),../sail/lib/regfp.sail:94),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_RISCV_i"),../sail/lib/regfp.sail:95),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Barrier_x86_MFENCE"),../sail/lib/regfp.sail:96),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:77)),../sail/lib/regfp.sail:77)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76)),:1))),Typ_aux(Typ_id(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("trans_kind_of_num"),../sail/lib/regfp.sail:99),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("trans_kind_of_num"),../sail/lib/regfp.sail:99),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Transaction_start"),../sail/lib/regfp.sail:100)),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Transaction_commit"),../sail/lib/regfp.sail:101)),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Transaction_abort"),../sail/lib/regfp.sail:102)),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_trans_kind"),../sail/lib/regfp.sail:99),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_trans_kind"),../sail/lib/regfp.sail:99),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Transaction_start"),../sail/lib/regfp.sail:100)),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Transaction_commit"),../sail/lib/regfp.sail:101)),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Transaction_abort"),../sail/lib/regfp.sail:102)),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_trans_kind"),../sail/lib/regfp.sail:99),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("trans_kind"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_trans_kind"),../sail/lib/regfp.sail:99),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("Transaction_start"),../sail/lib/regfp.sail:100)),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown)));(E_aux(E_id(Id_aux(Id("Transaction_commit"),../sail/lib/regfp.sail:101)),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown)));(E_aux(E_id(Id_aux(Id("Transaction_abort"),../sail/lib/regfp.sail:102)),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:99)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("trans_kind"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("trans_kind"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("cache_op_kind_of_num"),../sail/lib/regfp.sail:106),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(10),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("cache_op_kind_of_num"),../sail/lib/regfp.sail:106),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Cache_op_D_IVAC"),../sail/lib/regfp.sail:108)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Cache_op_D_ISW"),../sail/lib/regfp.sail:108)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Cache_op_D_CSW"),../sail/lib/regfp.sail:108)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Cache_op_D_CISW"),../sail/lib/regfp.sail:108)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Cache_op_D_ZVA"),../sail/lib/regfp.sail:109)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(5),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Cache_op_D_CVAC"),../sail/lib/regfp.sail:109)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(6),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Cache_op_D_CVAU"),../sail/lib/regfp.sail:109)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(7),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Cache_op_D_CIVAC"),../sail/lib/regfp.sail:109)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Cache_op_I_IALLUIS"),../sail/lib/regfp.sail:111)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(9),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Cache_op_I_IALLU"),../sail/lib/regfp.sail:111)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Cache_op_I_IVAU"),../sail/lib/regfp.sail:111)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_cache_op_kind"),../sail/lib/regfp.sail:106),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(10),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_cache_op_kind"),../sail/lib/regfp.sail:106),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Cache_op_D_IVAC"),../sail/lib/regfp.sail:108)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Cache_op_D_ISW"),../sail/lib/regfp.sail:108)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Cache_op_D_CSW"),../sail/lib/regfp.sail:108)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Cache_op_D_CISW"),../sail/lib/regfp.sail:108)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)),E_aux(E_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Cache_op_D_ZVA"),../sail/lib/regfp.sail:109)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)),E_aux(E_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Cache_op_D_CVAC"),../sail/lib/regfp.sail:109)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)),E_aux(E_lit(L_aux(L_num(5),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Cache_op_D_CVAU"),../sail/lib/regfp.sail:109)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)),E_aux(E_lit(L_aux(L_num(6),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Cache_op_D_CIVAC"),../sail/lib/regfp.sail:109)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)),E_aux(E_lit(L_aux(L_num(7),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Cache_op_I_IALLUIS"),../sail/lib/regfp.sail:111)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)),E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Cache_op_I_IALLU"),../sail/lib/regfp.sail:111)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)),E_aux(E_lit(L_aux(L_num(9),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Cache_op_I_IVAU"),../sail/lib/regfp.sail:111)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)),E_aux(E_lit(L_aux(L_num(10),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(10),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(10),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_cache_op_kind"),../sail/lib/regfp.sail:106),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_cache_op_kind"),../sail/lib/regfp.sail:106),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("Cache_op_D_IVAC"),../sail/lib/regfp.sail:108)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)));(E_aux(E_id(Id_aux(Id("Cache_op_D_ISW"),../sail/lib/regfp.sail:108)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)));(E_aux(E_id(Id_aux(Id("Cache_op_D_CSW"),../sail/lib/regfp.sail:108)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)));(E_aux(E_id(Id_aux(Id("Cache_op_D_CISW"),../sail/lib/regfp.sail:108)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)));(E_aux(E_id(Id_aux(Id("Cache_op_D_ZVA"),../sail/lib/regfp.sail:109)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)));(E_aux(E_id(Id_aux(Id("Cache_op_D_CVAC"),../sail/lib/regfp.sail:109)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)));(E_aux(E_id(Id_aux(Id("Cache_op_D_CVAU"),../sail/lib/regfp.sail:109)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)));(E_aux(E_id(Id_aux(Id("Cache_op_D_CIVAC"),../sail/lib/regfp.sail:109)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)));(E_aux(E_id(Id_aux(Id("Cache_op_I_IALLUIS"),../sail/lib/regfp.sail:111)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)));(E_aux(E_id(Id_aux(Id("Cache_op_I_IALLU"),../sail/lib/regfp.sail:111)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)));(E_aux(E_id(Id_aux(Id("Cache_op_I_IVAU"),../sail/lib/regfp.sail:111)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:106)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_instruction_kind"),../sail/lib/regfp.sail:115),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),../sail/lib/regfp.sail:115),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_instruction_kind"),../sail/lib/regfp.sail:115),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:116)),../sail/lib/regfp.sail:116),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:116)),../sail/lib/regfp.sail:116))),Typ_aux(Typ_id(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:116)),../sail/lib/regfp.sail:116)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:116)),../sail/lib/regfp.sail:116))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:123)),../sail/lib/regfp.sail:123),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:123)),../sail/lib/regfp.sail:123))),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:123)),../sail/lib/regfp.sail:123)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:123)),../sail/lib/regfp.sail:123))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:117)),../sail/lib/regfp.sail:117),P_aux(P_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:117)),../sail/lib/regfp.sail:117))),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:117)),../sail/lib/regfp.sail:117)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:117)),../sail/lib/regfp.sail:117))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:121)),../sail/lib/regfp.sail:121),P_aux(P_id(Id_aux(Id("u_3"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:121)),../sail/lib/regfp.sail:121))),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:121)),../sail/lib/regfp.sail:121)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:121)),../sail/lib/regfp.sail:121))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:120)),../sail/lib/regfp.sail:120),P_aux(P_id(Id_aux(Id("u_4"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:120)),../sail/lib/regfp.sail:120))),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:120)),../sail/lib/regfp.sail:120)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:120)),../sail/lib/regfp.sail:120))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:118)),../sail/lib/regfp.sail:118),P_aux(P_id(Id_aux(Id("u_5"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:118)),../sail/lib/regfp.sail:118))),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:118)),../sail/lib/regfp.sail:118)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:118)),../sail/lib/regfp.sail:118))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("IK_barrier"),../sail/lib/regfp.sail:116),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:116)),../sail/lib/regfp.sail:116)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown)));(E_aux(E_app(Id_aux(Id("IK_mem_read"),../sail/lib/regfp.sail:117),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:117)),../sail/lib/regfp.sail:117)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown)));(E_aux(E_app(Id_aux(Id("IK_mem_write"),../sail/lib/regfp.sail:118),[(E_aux(E_id(Id_aux(Id("u_5"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:118)),../sail/lib/regfp.sail:118)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown)));(E_aux(E_app(Id_aux(Id("IK_mem_rmw"),../sail/lib/regfp.sail:119),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:117)),../sail/lib/regfp.sail:117)));(E_aux(E_id(Id_aux(Id("u_5"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:118)),../sail/lib/regfp.sail:118)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:119)),../sail/lib/regfp.sail:119));(Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:119)),../sail/lib/regfp.sail:119))]),../sail/lib/regfp.sail:119)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown)));(E_aux(E_app(Id_aux(Id("IK_branch"),../sail/lib/regfp.sail:120),[(E_aux(E_id(Id_aux(Id("u_4"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:120)),../sail/lib/regfp.sail:120)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown)));(E_aux(E_app(Id_aux(Id("IK_trans"),../sail/lib/regfp.sail:121),[(E_aux(E_id(Id_aux(Id("u_3"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("trans_kind"),../sail/lib/regfp.sail:121)),../sail/lib/regfp.sail:121)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown)));(E_aux(E_app(Id_aux(Id("IK_simple"),../sail/lib/regfp.sail:122),[(E_aux(E_id(Id_aux(Id("u_4"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:120)),../sail/lib/regfp.sail:120)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown)));(E_aux(E_app(Id_aux(Id("IK_cache_op"),../sail/lib/regfp.sail:123),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("cache_op_kind"),../sail/lib/regfp.sail:123)),../sail/lib/regfp.sail:123)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115)),:1))),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("__read_mem"),../sail/lib/regfp.sail:126),[ocaml: "Platform.read_mem",c: "platform_read_mem",_: "read_mem"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/regfp.sail:128),Kid_aux(Var("'n"),../sail/lib/regfp.sail:128)),../sail/lib/regfp.sail:128)),../sail/lib/regfp.sail:128));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/regfp.sail:128),Kid_aux(Var("'addrsize"),../sail/lib/regfp.sail:128)),../sail/lib/regfp.sail:128)),../sail/lib/regfp.sail:128));(QI_aux(QI_constant([(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/regfp.sail:128),Kid_aux(Var("'addrsize"),../sail/lib/regfp.sail:128)),../sail/lib/regfp.sail:128))]),../sail/lib/regfp.sail:128));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/regfp.sail:128)),../sail/lib/regfp.sail:128),Nexp_aux(Nexp_constant(0),../sail/lib/regfp.sail:128)),../sail/lib/regfp.sail:128),NC_aux(NC_set(Kid_aux(Var("'addrsize"),../sail/lib/regfp.sail:128),[(32);(64)]),../sail/lib/regfp.sail:128)),../sail/lib/regfp.sail:128)),../sail/lib/regfp.sail:128))]),../sail/lib/regfp.sail:128),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:129)),../sail/lib/regfp.sail:129));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/regfp.sail:129),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'addrsize"),../sail/lib/regfp.sail:129)),../sail/lib/regfp.sail:129)),../sail/lib/regfp.sail:129))]),../sail/lib/regfp.sail:129));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'addrsize"),../sail/lib/regfp.sail:129)),../sail/lib/regfp.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/regfp.sail:129),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/regfp.sail:129)),../sail/lib/regfp.sail:129)),../sail/lib/regfp.sail:129))]),../sail/lib/regfp.sail:129))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),../sail/lib/regfp.sail:129),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/regfp.sail:129)),../sail/lib/regfp.sail:129)),../sail/lib/regfp.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rmem,../sail/lib/regfp.sail:129))]),../sail/lib/regfp.sail:129)),../sail/lib/regfp.sail:128-129)),../sail/lib/regfp.sail:128-129))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("__write_mem_ea"),../sail/lib/regfp.sail:130),[ocaml: "Platform.write_mem_ea",c: "platform_write_mem_ea",_: "write_mem_ea"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/regfp.sail:132),Kid_aux(Var("'n"),../sail/lib/regfp.sail:132)),../sail/lib/regfp.sail:132)),../sail/lib/regfp.sail:132));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/regfp.sail:132),Kid_aux(Var("'addrsize"),../sail/lib/regfp.sail:132)),../sail/lib/regfp.sail:132)),../sail/lib/regfp.sail:132));(QI_aux(QI_constant([(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/regfp.sail:132),Kid_aux(Var("'addrsize"),../sail/lib/regfp.sail:132)),../sail/lib/regfp.sail:132))]),../sail/lib/regfp.sail:132));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/regfp.sail:132)),../sail/lib/regfp.sail:132),Nexp_aux(Nexp_constant(0),../sail/lib/regfp.sail:132)),../sail/lib/regfp.sail:132),NC_aux(NC_set(Kid_aux(Var("'addrsize"),../sail/lib/regfp.sail:132),[(32);(64)]),../sail/lib/regfp.sail:132)),../sail/lib/regfp.sail:132)),../sail/lib/regfp.sail:132))]),../sail/lib/regfp.sail:132),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:133)),../sail/lib/regfp.sail:133));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/regfp.sail:133),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'addrsize"),../sail/lib/regfp.sail:133)),../sail/lib/regfp.sail:133)),../sail/lib/regfp.sail:133))]),../sail/lib/regfp.sail:133));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'addrsize"),../sail/lib/regfp.sail:133)),../sail/lib/regfp.sail:133)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/regfp.sail:133),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/regfp.sail:133)),../sail/lib/regfp.sail:133)),../sail/lib/regfp.sail:133))]),../sail/lib/regfp.sail:133))],Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:133)),../sail/lib/regfp.sail:133),Effect_aux(Effect_set([(BE_aux(BE_eamem,../sail/lib/regfp.sail:133))]),../sail/lib/regfp.sail:133)),../sail/lib/regfp.sail:132-133)),../sail/lib/regfp.sail:132-133))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("__write_mem"),../sail/lib/regfp.sail:134),[ocaml: "Platform.write_mem",c: "platform_write_mem",_: "write_mem"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/regfp.sail:136),Kid_aux(Var("'n"),../sail/lib/regfp.sail:136)),../sail/lib/regfp.sail:136)),../sail/lib/regfp.sail:136));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/regfp.sail:136),Kid_aux(Var("'addrsize"),../sail/lib/regfp.sail:136)),../sail/lib/regfp.sail:136)),../sail/lib/regfp.sail:136));(QI_aux(QI_constant([(KOpt_aux(KOpt_kind(K_aux(K_int,../sail/lib/regfp.sail:136),Kid_aux(Var("'addrsize"),../sail/lib/regfp.sail:136)),../sail/lib/regfp.sail:136))]),../sail/lib/regfp.sail:136));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/regfp.sail:136)),../sail/lib/regfp.sail:136),Nexp_aux(Nexp_constant(0),../sail/lib/regfp.sail:136)),../sail/lib/regfp.sail:136),NC_aux(NC_set(Kid_aux(Var("'addrsize"),../sail/lib/regfp.sail:136),[(32);(64)]),../sail/lib/regfp.sail:136)),../sail/lib/regfp.sail:136)),../sail/lib/regfp.sail:136))]),../sail/lib/regfp.sail:136),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:137)),../sail/lib/regfp.sail:137));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/regfp.sail:137),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'addrsize"),../sail/lib/regfp.sail:137)),../sail/lib/regfp.sail:137)),../sail/lib/regfp.sail:137))]),../sail/lib/regfp.sail:137));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'addrsize"),../sail/lib/regfp.sail:137)),../sail/lib/regfp.sail:137)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/regfp.sail:137),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/regfp.sail:137)),../sail/lib/regfp.sail:137)),../sail/lib/regfp.sail:137))]),../sail/lib/regfp.sail:137));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),../sail/lib/regfp.sail:137),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),../sail/lib/regfp.sail:137)),../sail/lib/regfp.sail:137)),../sail/lib/regfp.sail:137)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/regfp.sail:137)),../sail/lib/regfp.sail:137),Effect_aux(Effect_set([(BE_aux(BE_wmv,../sail/lib/regfp.sail:137))]),../sail/lib/regfp.sail:137)),../sail/lib/regfp.sail:136-137)),../sail/lib/regfp.sail:136-137))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("__excl_res"),../sail/lib/regfp.sail:138),[ocaml: "Platform.excl_res",c: "platform_excl_res",_: "excl_result"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:140)),../sail/lib/regfp.sail:140))],Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/regfp.sail:140)),../sail/lib/regfp.sail:140),Effect_aux(Effect_set([(BE_aux(BE_exmem,../sail/lib/regfp.sail:140))]),../sail/lib/regfp.sail:140)),../sail/lib/regfp.sail:140)),../sail/lib/regfp.sail:140))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("__barrier"),../sail/lib/regfp.sail:141),[ocaml: "Platform.barrier",c: "platform_barrier",_: "barrier"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:143)),../sail/lib/regfp.sail:143))],Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:143)),../sail/lib/regfp.sail:143),Effect_aux(Effect_set([(BE_aux(BE_barr,../sail/lib/regfp.sail:143))]),../sail/lib/regfp.sail:143)),../sail/lib/regfp.sail:143)),../sail/lib/regfp.sail:143))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("string_startswith"),model/prelude.sail:10),[_: "string_startswith"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:10)),model/prelude.sail:10));(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:10)),model/prelude.sail:10))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:10)),model/prelude.sail:10),Effect_aux(Effect_set([]),model/prelude.sail:10)),model/prelude.sail:10)),model/prelude.sail:10))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("string_drop"),model/prelude.sail:11),[_: "string_drop"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:11)),model/prelude.sail:11));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:11)),model/prelude.sail:11))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:11)),model/prelude.sail:11),Effect_aux(Effect_set([]),model/prelude.sail:11)),model/prelude.sail:11)),model/prelude.sail:11))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("string_take"),model/prelude.sail:12),[_: "string_take"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:12)),model/prelude.sail:12));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:12)),model/prelude.sail:12))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:12)),model/prelude.sail:12),Effect_aux(Effect_set([]),model/prelude.sail:12)),model/prelude.sail:12)),model/prelude.sail:12))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("string_length"),model/prelude.sail:13),[_: "string_length"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:13)),model/prelude.sail:13))],Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13),Effect_aux(Effect_set([]),model/prelude.sail:13)),model/prelude.sail:13)),model/prelude.sail:13))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("string_append"),model/prelude.sail:14),[c: "concat_str",_: "string_append"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:14)),model/prelude.sail:14));(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:14)),model/prelude.sail:14))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:14)),model/prelude.sail:14),Effect_aux(Effect_set([]),model/prelude.sail:14)),model/prelude.sail:14)),model/prelude.sail:14))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("eq_anything"),model/prelude.sail:16),[ocaml: "(fun (x, y) -> x = y)",interpreter: "eq_anything",lem: "eq",coq: "generic_eq",c: "eq_anything"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/prelude.sail:16),Kid_aux(Var("'a"),model/prelude.sail:16)),model/prelude.sail:16)),model/prelude.sail:16))]),model/prelude.sail:16),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:16)),model/prelude.sail:16));(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:16)),model/prelude.sail:16))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16),Effect_aux(Effect_set([]),model/prelude.sail:16)),model/prelude.sail:16)),model/prelude.sail:16))));(DEF_overload(Id_aux(Operator("=="),model/prelude.sail:18),[(Id_aux(Id("eq_string"),model/prelude.sail:18));(Id_aux(Id("eq_anything"),model/prelude.sail:18))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("reg_deref"),model/prelude.sail:20),[_: "reg_deref"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/prelude.sail:20),Kid_aux(Var("'a"),model/prelude.sail:20)),model/prelude.sail:20)),model/prelude.sail:20))]),model/prelude.sail:20),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),model/prelude.sail:20),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:20)),model/prelude.sail:20)),model/prelude.sail:20))]),model/prelude.sail:20))],Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:20)),model/prelude.sail:20),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/prelude.sail:20))]),model/prelude.sail:20)),model/prelude.sail:20)),model/prelude.sail:20))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_reg_deref"),model/prelude.sail:22),[_: "reg_deref"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/prelude.sail:22),Kid_aux(Var("'a"),model/prelude.sail:22)),model/prelude.sail:22)),model/prelude.sail:22))]),model/prelude.sail:22),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),model/prelude.sail:22),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:22)),model/prelude.sail:22)),model/prelude.sail:22))]),model/prelude.sail:22))],Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:22)),model/prelude.sail:22),Effect_aux(Effect_set([]),model/prelude.sail:22)),model/prelude.sail:22)),model/prelude.sail:22))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("any_vector_update"),model/prelude.sail:24),[ocaml: "update",lem: "update_list_dec",coq: "vector_update"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:24),Kid_aux(Var("'n"),model/prelude.sail:24)),model/prelude.sail:24)),model/prelude.sail:24));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/prelude.sail:24),Kid_aux(Var("'a"),model/prelude.sail:24)),model/prelude.sail:24)),model/prelude.sail:24))]),model/prelude.sail:24),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("vector"),model/prelude.sail:25),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:25)),model/prelude.sail:25)),model/prelude.sail:25));(A_aux(A_order(Ord_aux(Ord_dec,model/prelude.sail:25)),model/prelude.sail:25));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:25)),model/prelude.sail:25)),model/prelude.sail:25))]),model/prelude.sail:25));(Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:25)),model/prelude.sail:25));(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:25)),model/prelude.sail:25))],Typ_aux(Typ_app(Id_aux(Id("vector"),model/prelude.sail:25),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:25)),model/prelude.sail:25)),model/prelude.sail:25));(A_aux(A_order(Ord_aux(Ord_dec,model/prelude.sail:25)),model/prelude.sail:25));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:25)),model/prelude.sail:25)),model/prelude.sail:25))]),model/prelude.sail:25),Effect_aux(Effect_set([]),model/prelude.sail:24-25)),model/prelude.sail:24-25)),model/prelude.sail:24-25))));(DEF_overload(Id_aux(Id("vector_update"),model/prelude.sail:27),[(Id_aux(Id("any_vector_update"),model/prelude.sail:27))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("update_subrange"),model/prelude.sail:29),[ocaml: "update_subrange",interpreter: "update_subrange",lem: "update_subrange_vec_dec",coq: "update_subrange_vec_dec"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:29),Kid_aux(Var("'n"),model/prelude.sail:29)),model/prelude.sail:29)),model/prelude.sail:29));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:29),Kid_aux(Var("'m"),model/prelude.sail:29)),model/prelude.sail:29)),model/prelude.sail:29));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:29),Kid_aux(Var("'o"),model/prelude.sail:29)),model/prelude.sail:29)),model/prelude.sail:29))]),model/prelude.sail:29),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:30)),model/prelude.sail:30)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude.sail:30),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:30)),model/prelude.sail:30)),model/prelude.sail:30))]),model/prelude.sail:30));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude.sail:30),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'o"),model/prelude.sail:30)),model/prelude.sail:30)),model/prelude.sail:30))]),model/prelude.sail:30));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:30)),model/prelude.sail:30),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'o"),model/prelude.sail:30)),model/prelude.sail:30),Nexp_aux(Nexp_constant(1),model/prelude.sail:30)),model/prelude.sail:30)),model/prelude.sail:30)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:30)),model/prelude.sail:30)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:29-30)),model/prelude.sail:29-30)),model/prelude.sail:29-30))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("vector_concat"),model/prelude.sail:32),[ocaml: "append",lem: "append_list",coq: "vec_concat"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:32),Kid_aux(Var("'n"),model/prelude.sail:32)),model/prelude.sail:32)),model/prelude.sail:32));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:32),Kid_aux(Var("'m"),model/prelude.sail:32)),model/prelude.sail:32)),model/prelude.sail:32));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/prelude.sail:32),Kid_aux(Var("'a"),model/prelude.sail:32)),model/prelude.sail:32)),model/prelude.sail:32))]),model/prelude.sail:32),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("vector"),model/prelude.sail:33),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:33)),model/prelude.sail:33)),model/prelude.sail:33));(A_aux(A_order(Ord_aux(Ord_dec,model/prelude.sail:33)),model/prelude.sail:33));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:33)),model/prelude.sail:33)),model/prelude.sail:33))]),model/prelude.sail:33));(Typ_aux(Typ_app(Id_aux(Id("vector"),model/prelude.sail:33),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:33)),model/prelude.sail:33)),model/prelude.sail:33));(A_aux(A_order(Ord_aux(Ord_dec,model/prelude.sail:33)),model/prelude.sail:33));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:33)),model/prelude.sail:33)),model/prelude.sail:33))]),model/prelude.sail:33))],Typ_aux(Typ_app(Id_aux(Id("vector"),model/prelude.sail:33),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:33)),model/prelude.sail:33),Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:33)),model/prelude.sail:33)),model/prelude.sail:33)),model/prelude.sail:33));(A_aux(A_order(Ord_aux(Ord_dec,model/prelude.sail:33)),model/prelude.sail:33));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:33)),model/prelude.sail:33)),model/prelude.sail:33))]),model/prelude.sail:33),Effect_aux(Effect_set([]),model/prelude.sail:32-33)),model/prelude.sail:32-33)),model/prelude.sail:32-33))));(DEF_overload(Id_aux(Id("append"),model/prelude.sail:35),[(Id_aux(Id("vector_concat"),model/prelude.sail:35))]));(DEF_overload(Id_aux(Id("~"),model/prelude.sail:37),[(Id_aux(Id("not_bool"),model/prelude.sail:37));(Id_aux(Id("not_vec"),model/prelude.sail:37))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("neq_vec"),model/prelude.sail:39),[lem: "neq"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:39),Kid_aux(Var("'n"),model/prelude.sail:39)),model/prelude.sail:39)),model/prelude.sail:39))]),model/prelude.sail:39),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:39)),model/prelude.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:39)),model/prelude.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:39)),model/prelude.sail:39),Effect_aux(Effect_set([]),model/prelude.sail:39)),model/prelude.sail:39)),model/prelude.sail:39))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("neq_vec"),model/prelude.sail:41),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("x"),model/prelude.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:39)),model/prelude.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("y"),model/prelude.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:39)),model/prelude.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:39)),model/prelude.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:39)),model/prelude.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/prelude.sail:41)),E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:41),[(E_aux(E_app(Id_aux(Id("eq_bits"),model/prelude.sail:41),[(E_aux(E_id(Id_aux(Id("x"),model/prelude.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:39)),model/prelude.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("y"),model/prelude.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:39)),model/prelude.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex287#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex287#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:39)),model/prelude.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:39)),model/prelude.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:39)),model/prelude.sail:39),Effect_aux(Effect_set([]),model/prelude.sail:39)),model/prelude.sail:39)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("neq_anything"),model/prelude.sail:43),[lem: "neq",coq: "generic_neq"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/prelude.sail:43),Kid_aux(Var("'a"),model/prelude.sail:43)),model/prelude.sail:43)),model/prelude.sail:43))]),model/prelude.sail:43),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:43)),model/prelude.sail:43));(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:43)),model/prelude.sail:43))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:43)),model/prelude.sail:43),Effect_aux(Effect_set([]),model/prelude.sail:43)),model/prelude.sail:43)),model/prelude.sail:43))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("neq_anything"),model/prelude.sail:45),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("x"),model/prelude.sail:45)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:43)),model/prelude.sail:43)));(P_aux(P_id(Id_aux(Id("y"),model/prelude.sail:45)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:43)),model/prelude.sail:43)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:43)),model/prelude.sail:43));(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:43)),model/prelude.sail:43))]),model/prelude.sail:45)),E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("x"),model/prelude.sail:45)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:43)),model/prelude.sail:43)));(E_aux(E_id(Id_aux(Id("y"),model/prelude.sail:45)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:43)),model/prelude.sail:43)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex291#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex291#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:43)),model/prelude.sail:43));(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/prelude.sail:43)),model/prelude.sail:43))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:43)),model/prelude.sail:43),Effect_aux(Effect_set([]),model/prelude.sail:43)),model/prelude.sail:43)))]),None)));(DEF_overload(Id_aux(Operator("!="),model/prelude.sail:47),[(Id_aux(Id("neq_vec"),model/prelude.sail:47));(Id_aux(Id("neq_anything"),model/prelude.sail:47))]));(DEF_overload(Id_aux(Operator("&"),model/prelude.sail:49),[(Id_aux(Id("and_vec"),model/prelude.sail:49))]));(DEF_overload(Id_aux(Operator("|"),model/prelude.sail:51),[(Id_aux(Id("or_vec"),model/prelude.sail:51))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("string_of_int"),model/prelude.sail:53),[c: "string_of_int",ocaml: "string_of_int",interpreter: "string_of_int",lem: "stringFromInteger",coq: "string_of_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:53)),model/prelude.sail:53))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:53)),model/prelude.sail:53),Effect_aux(Effect_set([]),model/prelude.sail:53)),model/prelude.sail:53)),model/prelude.sail:53))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("string_of_bits"),model/prelude.sail:55),[_: "string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:55),Kid_aux(Var("'n"),model/prelude.sail:55)),model/prelude.sail:55)),model/prelude.sail:55))]),model/prelude.sail:55),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:55)),model/prelude.sail:55)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55),Effect_aux(Effect_set([]),model/prelude.sail:55)),model/prelude.sail:55)),model/prelude.sail:55))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("string_of_bit"),model/prelude.sail:57),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bit"),model/prelude.sail:57)),model/prelude.sail:57))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:57)),model/prelude.sail:57),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:57)),model/prelude.sail:57)),model/prelude.sail:57),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("string_of_bit"),model/prelude.sail:57),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bit"),model/prelude.sail:57)),model/prelude.sail:57),P_aux(P_id(Id_aux(Id("b"),model/prelude.sail:57)),Typ_aux(Typ_id(Id_aux(Id("bit"),model/prelude.sail:57)),model/prelude.sail:57))),Typ_aux(Typ_id(Id_aux(Id("bit"),model/prelude.sail:57)),model/prelude.sail:57)),E_aux(E_case(E_aux(E_id(Id_aux(Id("b"),model/prelude.sail:58)),Typ_aux(Typ_id(Id_aux(Id("bit"),model/prelude.sail:57)),model/prelude.sail:57)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_zero,model/prelude.sail:59)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_string("0b0"),model/prelude.sail:59)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_one,model/prelude.sail:60)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_string("0b1"),model/prelude.sail:60)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:57)),model/prelude.sail:57))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bit"),model/prelude.sail:57)),model/prelude.sail:57))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:57)),model/prelude.sail:57),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_overload(Id_aux(Id("BitStr"),model/prelude.sail:63),[(Id_aux(Id("string_of_bits"),model/prelude.sail:63));(Id_aux(Id("string_of_bit"),model/prelude.sail:63))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("xor_vec"),model/prelude.sail:65),[c: "xor_bits",_: "xor_vec"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:65),Kid_aux(Var("'n"),model/prelude.sail:65)),model/prelude.sail:65)),model/prelude.sail:65))]),model/prelude.sail:65),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:65)),model/prelude.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:65)),model/prelude.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:65)),model/prelude.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:65)),model/prelude.sail:65)),model/prelude.sail:65))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("int_power"),model/prelude.sail:67),[ocaml: "int_power",interpreter: "int_power",lem: "pow",coq: "pow",c: "pow_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:67)),model/prelude.sail:67));(Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:67)),model/prelude.sail:67))],Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:67)),model/prelude.sail:67),Effect_aux(Effect_set([]),model/prelude.sail:67)),model/prelude.sail:67)),model/prelude.sail:67))));(DEF_overload(Id_aux(Operator("^"),model/prelude.sail:69),[(Id_aux(Id("xor_vec"),model/prelude.sail:69));(Id_aux(Id("int_power"),model/prelude.sail:69));(Id_aux(Id("concat_str"),model/prelude.sail:69))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sub_vec"),model/prelude.sail:71),[c: "sub_bits",_: "sub_vec"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:71),Kid_aux(Var("'n"),model/prelude.sail:71)),model/prelude.sail:71)),model/prelude.sail:71))]),model/prelude.sail:71),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:71)),model/prelude.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:71)),model/prelude.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:71)),model/prelude.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:71)),model/prelude.sail:71)),model/prelude.sail:71))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sub_vec_int"),model/prelude.sail:73),[c: "sub_bits_int",_: "sub_vec_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:73),Kid_aux(Var("'n"),model/prelude.sail:73)),model/prelude.sail:73)),model/prelude.sail:73))]),model/prelude.sail:73),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:73)),model/prelude.sail:73)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:73)),model/prelude.sail:73))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:73)),model/prelude.sail:73)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:73)),model/prelude.sail:73)),model/prelude.sail:73))));(DEF_overload(Id_aux(Operator("-"),model/prelude.sail:75),[(Id_aux(Id("sub_vec"),model/prelude.sail:75));(Id_aux(Id("sub_vec_int"),model/prelude.sail:75))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("quot_round_zero"),model/prelude.sail:77),[ocaml: "quot_round_zero",interpreter: "quot_round_zero",lem: "hardware_quot",c: "tdiv_int",coq: "Z.quot"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:77)),model/prelude.sail:77));(Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:77)),model/prelude.sail:77))],Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:77)),model/prelude.sail:77),Effect_aux(Effect_set([]),model/prelude.sail:77)),model/prelude.sail:77)),model/prelude.sail:77))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("rem_round_zero"),model/prelude.sail:78),[ocaml: "rem_round_zero",interpreter: "rem_round_zero",lem: "hardware_mod",c: "tmod_int",coq: "Z.rem"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:78)),model/prelude.sail:78));(Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:78)),model/prelude.sail:78))],Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:78)),model/prelude.sail:78),Effect_aux(Effect_set([]),model/prelude.sail:78)),model/prelude.sail:78)),model/prelude.sail:78))));(DEF_overload(Id_aux(Operator("%"),model/prelude.sail:81),[(Id_aux(Id("emod_int"),model/prelude.sail:81));(Id_aux(Id("mod"),model/prelude.sail:81))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("min_nat"),model/prelude.sail:83),[ocaml: "min_int",interpreter: "min_int",lem: "min",coq: "min_nat",c: "min_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:83)),model/prelude.sail:83));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:83)),model/prelude.sail:83))],Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:83)),model/prelude.sail:83),Effect_aux(Effect_set([]),model/prelude.sail:83)),model/prelude.sail:83)),model/prelude.sail:83))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("min_int"),model/prelude.sail:85),[ocaml: "min_int",interpreter: "min_int",lem: "min",coq: "Z.min",c: "min_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:85)),model/prelude.sail:85));(Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:85)),model/prelude.sail:85))],Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:85)),model/prelude.sail:85),Effect_aux(Effect_set([]),model/prelude.sail:85)),model/prelude.sail:85)),model/prelude.sail:85))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("max_nat"),model/prelude.sail:87),[ocaml: "max_int",interpreter: "max_int",lem: "max",coq: "max_nat",c: "max_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:87)),model/prelude.sail:87));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:87)),model/prelude.sail:87))],Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:87)),model/prelude.sail:87),Effect_aux(Effect_set([]),model/prelude.sail:87)),model/prelude.sail:87)),model/prelude.sail:87))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("max_int"),model/prelude.sail:89),[ocaml: "max_int",interpreter: "max_int",lem: "max",coq: "Z.max",c: "max_int"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:89)),model/prelude.sail:89));(Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:89)),model/prelude.sail:89))],Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:89)),model/prelude.sail:89),Effect_aux(Effect_set([]),model/prelude.sail:89)),model/prelude.sail:89)),model/prelude.sail:89))));(DEF_overload(Id_aux(Id("min"),model/prelude.sail:91),[(Id_aux(Id("min_nat"),model/prelude.sail:91));(Id_aux(Id("min_int"),model/prelude.sail:91))]));(DEF_overload(Id_aux(Id("max"),model/prelude.sail:93),[(Id_aux(Id("max_nat"),model/prelude.sail:93));(Id_aux(Id("max_int"),model/prelude.sail:93))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pow2"),model/prelude.sail:95),[_: "pow2"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:95),Kid_aux(Var("'n"),model/prelude.sail:95)),model/prelude.sail:95)),model/prelude.sail:95))]),model/prelude.sail:95),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude.sail:95),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:95)),model/prelude.sail:95)),model/prelude.sail:95))]),model/prelude.sail:95))],Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude.sail:95),[(A_aux(A_nexp(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:95)),model/prelude.sail:95)),model/prelude.sail:95)),model/prelude.sail:95))]),model/prelude.sail:95),Effect_aux(Effect_set([]),model/prelude.sail:95)),model/prelude.sail:95)),model/prelude.sail:95))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("print"),model/prelude.sail:97),[_: "print_endline"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:97)),model/prelude.sail:97))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:97)),model/prelude.sail:97),Effect_aux(Effect_set([]),model/prelude.sail:97)),model/prelude.sail:97)),model/prelude.sail:97))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("print_string"),model/prelude.sail:98),[_: "print_string"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:98)),model/prelude.sail:98));(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:98)),model/prelude.sail:98))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:98)),model/prelude.sail:98),Effect_aux(Effect_set([]),model/prelude.sail:98)),model/prelude.sail:98)),model/prelude.sail:98))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("print_instr"),model/prelude.sail:100),[ocaml: "Platform.print_instr",interpreter: "print_endline",c: "print_instr",lem: "print_dbg",_: "print_endline"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:100)),model/prelude.sail:100))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:100)),model/prelude.sail:100),Effect_aux(Effect_set([]),model/prelude.sail:100)),model/prelude.sail:100)),model/prelude.sail:100))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("print_reg"),model/prelude.sail:101),[ocaml: "Platform.print_reg",interpreter: "print_endline",c: "print_reg",lem: "print_dbg",_: "print_endline"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:101)),model/prelude.sail:101))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:101)),model/prelude.sail:101),Effect_aux(Effect_set([]),model/prelude.sail:101)),model/prelude.sail:101)),model/prelude.sail:101))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("print_mem"),model/prelude.sail:102),[ocaml: "Platform.print_mem_access",interpreter: "print_endline",c: "print_mem_access",lem: "print_dbg",_: "print_endline"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:102)),model/prelude.sail:102))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:102)),model/prelude.sail:102),Effect_aux(Effect_set([]),model/prelude.sail:102)),model/prelude.sail:102)),model/prelude.sail:102))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("print_platform"),model/prelude.sail:103),[ocaml: "Platform.print_platform",interpreter: "print_endline",c: "print_platform",lem: "print_dbg",_: "print_endline"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:103)),model/prelude.sail:103))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103),Effect_aux(Effect_set([]),model/prelude.sail:103)),model/prelude.sail:103)),model/prelude.sail:103))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("get_config_print_instr"),model/prelude.sail:105),[ocaml: "Platform.get_config_print_instr",c: "get_config_print_instr"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:105)),model/prelude.sail:105))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:105)),model/prelude.sail:105),Effect_aux(Effect_set([]),model/prelude.sail:105)),model/prelude.sail:105)),model/prelude.sail:105))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("get_config_print_reg"),model/prelude.sail:106),[ocaml: "Platform.get_config_print_reg",c: "get_config_print_reg"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:106)),model/prelude.sail:106))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:106)),model/prelude.sail:106),Effect_aux(Effect_set([]),model/prelude.sail:106)),model/prelude.sail:106)),model/prelude.sail:106))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("get_config_print_mem"),model/prelude.sail:107),[ocaml: "Platform.get_config_print_mem",c: "get_config_print_mem"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:107)),model/prelude.sail:107))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:107)),model/prelude.sail:107),Effect_aux(Effect_set([]),model/prelude.sail:107)),model/prelude.sail:107)),model/prelude.sail:107))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("get_config_print_platform"),model/prelude.sail:109),[ocaml: "Platform.get_config_print_platform",c: "get_config_print_platform"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:109)),model/prelude.sail:109))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109),Effect_aux(Effect_set([]),model/prelude.sail:109)),model/prelude.sail:109)),model/prelude.sail:109))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("get_config_print_instr"),model/prelude.sail:111),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/prelude.sail:111)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude.sail:111)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:105)),model/prelude.sail:105))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:105)),model/prelude.sail:105),Effect_aux(Effect_set([]),model/prelude.sail:105)),model/prelude.sail:105)))]),None)));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("get_config_print_reg"),model/prelude.sail:112),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/prelude.sail:112)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude.sail:112)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:106)),model/prelude.sail:106))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:106)),model/prelude.sail:106),Effect_aux(Effect_set([]),model/prelude.sail:106)),model/prelude.sail:106)))]),None)));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("get_config_print_mem"),model/prelude.sail:113),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/prelude.sail:113)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:107)),model/prelude.sail:107))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:107)),model/prelude.sail:107),Effect_aux(Effect_set([]),model/prelude.sail:107)),model/prelude.sail:107)))]),None)));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("get_config_print_platform"),model/prelude.sail:114),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/prelude.sail:114)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:109)),model/prelude.sail:109))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109),Effect_aux(Effect_set([]),model/prelude.sail:109)),model/prelude.sail:109)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("EXTS"),model/prelude.sail:116),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:116),Kid_aux(Var("'n"),model/prelude.sail:116)),model/prelude.sail:116)),model/prelude.sail:116));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:116),Kid_aux(Var("'m"),model/prelude.sail:116)),model/prelude.sail:116)),model/prelude.sail:116));(QI_aux(QI_constraint(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:116)),model/prelude.sail:116),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:116)),model/prelude.sail:116)),model/prelude.sail:116)),model/prelude.sail:116))]),model/prelude.sail:116),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("implicit"),model/prelude.sail:116),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:116)),model/prelude.sail:116)),model/prelude.sail:116))]),model/prelude.sail:116));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:116)),model/prelude.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:116)),model/prelude.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:116)),model/prelude.sail:116)),model/prelude.sail:116))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("EXTZ"),model/prelude.sail:117),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:117),Kid_aux(Var("'n"),model/prelude.sail:117)),model/prelude.sail:117)),model/prelude.sail:117));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:117),Kid_aux(Var("'m"),model/prelude.sail:117)),model/prelude.sail:117)),model/prelude.sail:117));(QI_aux(QI_constraint(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:117)),model/prelude.sail:117),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:117)),model/prelude.sail:117)),model/prelude.sail:117)),model/prelude.sail:117))]),model/prelude.sail:117),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("implicit"),model/prelude.sail:117),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:117)),model/prelude.sail:117)),model/prelude.sail:117))]),model/prelude.sail:117));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:117)),model/prelude.sail:117)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:117)),model/prelude.sail:117)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:117)),model/prelude.sail:117)),model/prelude.sail:117))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("EXTS"),model/prelude.sail:119),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("m"),model/prelude.sail:119)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:116)),model/prelude.sail:116)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("v"),model/prelude.sail:119)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:116)),model/prelude.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:116)),model/prelude.sail:116)),model/prelude.sail:116))]),model/prelude.sail:116));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:116)),model/prelude.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/prelude.sail:119)),E_aux(E_app(Id_aux(Id("sail_sign_extend"),model/prelude.sail:119),[(E_aux(E_id(Id_aux(Id("v"),model/prelude.sail:119)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:116)),model/prelude.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("m"),model/prelude.sail:119)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:116)),model/prelude.sail:116)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:116)),model/prelude.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("implicit"),model/prelude.sail:116),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:116)),model/prelude.sail:116)),model/prelude.sail:116))]),model/prelude.sail:116));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:116)),model/prelude.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:116)),model/prelude.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:116)),model/prelude.sail:116)))]),None)));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("EXTZ"),model/prelude.sail:120),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("m"),model/prelude.sail:120)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:117)),model/prelude.sail:117)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("v"),model/prelude.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:117)),model/prelude.sail:117)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:117)),model/prelude.sail:117)),model/prelude.sail:117))]),model/prelude.sail:117));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:117)),model/prelude.sail:117)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/prelude.sail:120)),E_aux(E_app(Id_aux(Id("sail_zero_extend"),model/prelude.sail:120),[(E_aux(E_id(Id_aux(Id("v"),model/prelude.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:117)),model/prelude.sail:117)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("m"),model/prelude.sail:120)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:117)),model/prelude.sail:117)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:117)),model/prelude.sail:117)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("implicit"),model/prelude.sail:117),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:117)),model/prelude.sail:117)),model/prelude.sail:117))]),model/prelude.sail:117));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:117)),model/prelude.sail:117)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:117)),model/prelude.sail:117)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:117)),model/prelude.sail:117)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("zeros_implicit"),model/prelude.sail:122),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:122),Kid_aux(Var("'n"),model/prelude.sail:122)),model/prelude.sail:122)),model/prelude.sail:122));(QI_aux(QI_constraint(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:122)),model/prelude.sail:122),Nexp_aux(Nexp_constant(0),model/prelude.sail:122)),model/prelude.sail:122)),model/prelude.sail:122))]),model/prelude.sail:122),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("implicit"),model/prelude.sail:122),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:122)),model/prelude.sail:122)),model/prelude.sail:122))]),model/prelude.sail:122))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:122)),model/prelude.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:122)),model/prelude.sail:122)),model/prelude.sail:122))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("zeros_implicit"),model/prelude.sail:123),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("n"),model/prelude.sail:123)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:122)),model/prelude.sail:122)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("sail_zeros"),model/prelude.sail:123),[(E_aux(E_id(Id_aux(Id("n"),model/prelude.sail:123)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:122)),model/prelude.sail:122)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:122)),model/prelude.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("implicit"),model/prelude.sail:122),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:122)),model/prelude.sail:122)),model/prelude.sail:122))]),model/prelude.sail:122))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:122)),model/prelude.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:122)),model/prelude.sail:122)))]),None)));(DEF_overload(Id_aux(Id("zeros"),model/prelude.sail:124),[(Id_aux(Id("zeros_implicit"),model/prelude.sail:124))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ones"),model/prelude.sail:126),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:126),Kid_aux(Var("'n"),model/prelude.sail:126)),model/prelude.sail:126)),model/prelude.sail:126));(QI_aux(QI_constraint(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:126)),model/prelude.sail:126),Nexp_aux(Nexp_constant(0),model/prelude.sail:126)),model/prelude.sail:126)),model/prelude.sail:126))]),model/prelude.sail:126),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("implicit"),model/prelude.sail:126),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:126)),model/prelude.sail:126)),model/prelude.sail:126))]),model/prelude.sail:126))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:126)),model/prelude.sail:126)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:126)),model/prelude.sail:126)),model/prelude.sail:126))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ones"),model/prelude.sail:127),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("n"),model/prelude.sail:127)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:126)),model/prelude.sail:126)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("sail_ones"),model/prelude.sail:127),[(E_aux(E_id(Id_aux(Id("n"),model/prelude.sail:127)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:126)),model/prelude.sail:126)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:126)),model/prelude.sail:126)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("implicit"),model/prelude.sail:126),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:126)),model/prelude.sail:126)),model/prelude.sail:126))]),model/prelude.sail:126))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:126)),model/prelude.sail:126)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:126)),model/prelude.sail:126)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("bool_to_bits"),model/prelude.sail:129),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:129)),model/prelude.sail:129))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:129)),model/prelude.sail:129)),model/prelude.sail:129))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("bool_to_bits"),model/prelude.sail:130),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("x"),model/prelude.sail:130)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex343#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_if(E_aux(E_id(Id_aux(Id("x"),model/prelude.sail:130)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex343#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_bin("1"),model/prelude.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_bin("0"),model/prelude.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex343#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:129)),model/prelude.sail:129)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("bit_to_bool"),model/prelude.sail:132),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bit"),model/prelude.sail:132)),model/prelude.sail:132))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:132)),model/prelude.sail:132),Effect_aux(Effect_set([]),model/prelude.sail:132)),model/prelude.sail:132)),model/prelude.sail:132))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("bit_to_bool"),model/prelude.sail:133),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("b"),model/prelude.sail:133)),Typ_aux(Typ_id(Id_aux(Id("bit"),model/prelude.sail:132)),model/prelude.sail:132)),E_aux(E_case(E_aux(E_id(Id_aux(Id("b"),model/prelude.sail:133)),Typ_aux(Typ_id(Id_aux(Id("bit"),model/prelude.sail:132)),model/prelude.sail:132)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_one,model/prelude.sail:134)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude.sail:134)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_zero,model/prelude.sail:135)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude.sail:135)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:132)),model/prelude.sail:132))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bit"),model/prelude.sail:132)),model/prelude.sail:132))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:132)),model/prelude.sail:132),Effect_aux(Effect_set([]),model/prelude.sail:132)),model/prelude.sail:132)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("to_bits"),model/prelude.sail:138),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:138),Kid_aux(Var("'l"),model/prelude.sail:138)),model/prelude.sail:138)),model/prelude.sail:138));(QI_aux(QI_constraint(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'l"),model/prelude.sail:138)),model/prelude.sail:138),Nexp_aux(Nexp_constant(0),model/prelude.sail:138)),model/prelude.sail:138)),model/prelude.sail:138))]),model/prelude.sail:138),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude.sail:138),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'l"),model/prelude.sail:138)),model/prelude.sail:138)),model/prelude.sail:138))]),model/prelude.sail:138));(Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:138)),model/prelude.sail:138))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'l"),model/prelude.sail:138)),model/prelude.sail:138)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:138)),model/prelude.sail:138)),model/prelude.sail:138))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("to_bits"),model/prelude.sail:139),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("l"),model/prelude.sail:139)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'l"),model/prelude.sail:138)),model/prelude.sail:138)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("n"),model/prelude.sail:139)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex346#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'l"),model/prelude.sail:138)),model/prelude.sail:138)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex346#"),Unknown)),Unknown)),Unknown))]),Unknown))]),model/prelude.sail:139)),E_aux(E_app(Id_aux(Id("get_slice_int"),model/prelude.sail:139),[(E_aux(E_id(Id_aux(Id("l"),model/prelude.sail:139)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'l"),model/prelude.sail:138)),model/prelude.sail:138)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("n"),model/prelude.sail:139)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex346#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/prelude.sail:139)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'l"),model/prelude.sail:138)),model/prelude.sail:138)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'l"),model/prelude.sail:138)),model/prelude.sail:138)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex346#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'l"),model/prelude.sail:138)),model/prelude.sail:138)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:138)),model/prelude.sail:138)))]),None)));(DEF_fixity(Infix,4,Id_aux(Id("<_s"),model/prelude.sail:141)));(DEF_fixity(Infix,4,Id_aux(Id(">=_s"),model/prelude.sail:142)));(DEF_fixity(Infix,4,Id_aux(Id("<_u"),model/prelude.sail:143)));(DEF_fixity(Infix,4,Id_aux(Id(">=_u"),model/prelude.sail:144)));(DEF_fixity(Infix,4,Id_aux(Id("<=_u"),model/prelude.sail:145)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Operator("<_s"),model/prelude.sail:147),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:147),Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147)),model/prelude.sail:147));(QI_aux(QI_constraint(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147),Nexp_aux(Nexp_constant(0),model/prelude.sail:147)),model/prelude.sail:147)),model/prelude.sail:147))]),model/prelude.sail:147),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:147)),model/prelude.sail:147),Effect_aux(Effect_set([]),model/prelude.sail:147)),model/prelude.sail:147)),model/prelude.sail:147))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Operator(">=_s"),model/prelude.sail:148),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:148),Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148)),model/prelude.sail:148));(QI_aux(QI_constraint(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148),Nexp_aux(Nexp_constant(0),model/prelude.sail:148)),model/prelude.sail:148)),model/prelude.sail:148))]),model/prelude.sail:148),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:148)),model/prelude.sail:148),Effect_aux(Effect_set([]),model/prelude.sail:148)),model/prelude.sail:148)),model/prelude.sail:148))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Operator("<_u"),model/prelude.sail:149),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:149),Kid_aux(Var("'n"),model/prelude.sail:149)),model/prelude.sail:149)),model/prelude.sail:149))]),model/prelude.sail:149),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:149)),model/prelude.sail:149)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:149)),model/prelude.sail:149)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:149)),model/prelude.sail:149),Effect_aux(Effect_set([]),model/prelude.sail:149)),model/prelude.sail:149)),model/prelude.sail:149))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Operator(">=_u"),model/prelude.sail:150),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:150),Kid_aux(Var("'n"),model/prelude.sail:150)),model/prelude.sail:150)),model/prelude.sail:150))]),model/prelude.sail:150),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:150)),model/prelude.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:150)),model/prelude.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:150)),model/prelude.sail:150),Effect_aux(Effect_set([]),model/prelude.sail:150)),model/prelude.sail:150)),model/prelude.sail:150))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Operator("<=_u"),model/prelude.sail:151),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:151),Kid_aux(Var("'n"),model/prelude.sail:151)),model/prelude.sail:151)),model/prelude.sail:151))]),model/prelude.sail:151),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:151)),model/prelude.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:151)),model/prelude.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:151)),model/prelude.sail:151),Effect_aux(Effect_set([]),model/prelude.sail:151)),model/prelude.sail:151)),model/prelude.sail:151))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Operator("<_s"),model/prelude.sail:153),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("x"),model/prelude.sail:153)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("y"),model/prelude.sail:153)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/prelude.sail:153)),E_aux(E_app(Id_aux(Id("lt_int"),../sail/lib/flow.sail:49),[(E_aux(E_app(Id_aux(Id("signed"),model/prelude.sail:153),[(E_aux(E_id(Id_aux(Id("x"),model/prelude.sail:153)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)));(E_aux(E_app(Id_aux(Id("signed"),model/prelude.sail:153),[(E_aux(E_id(Id_aux(Id("y"),model/prelude.sail:153)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex367#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex368#"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_var(Kid_aux(Var("'ex368#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex368#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),Unknown)),Unknown),NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_var(Kid_aux(Var("'ex367#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex367#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'ex367#"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex368#"),Unknown)),Unknown)),../sail/lib/flow.sail:40)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:147)),model/prelude.sail:147)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:147)),model/prelude.sail:147),Effect_aux(Effect_set([]),model/prelude.sail:147)),model/prelude.sail:147)))]),None)));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Operator(">=_s"),model/prelude.sail:154),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("x"),model/prelude.sail:154)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("y"),model/prelude.sail:154)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/prelude.sail:154)),E_aux(E_app(Id_aux(Id("gteq_int"),../sail/lib/flow.sail:50),[(E_aux(E_app(Id_aux(Id("signed"),model/prelude.sail:154),[(E_aux(E_id(Id_aux(Id("x"),model/prelude.sail:154)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)));(E_aux(E_app(Id_aux(Id("signed"),model/prelude.sail:154),[(E_aux(E_id(Id_aux(Id("y"),model/prelude.sail:154)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex374#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex375#"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_var(Kid_aux(Var("'ex375#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex375#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),Unknown)),Unknown),NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_var(Kid_aux(Var("'ex374#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex374#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'ex374#"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex375#"),Unknown)),Unknown)),../sail/lib/flow.sail:39)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:148)),model/prelude.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:148)),model/prelude.sail:148),Effect_aux(Effect_set([]),model/prelude.sail:148)),model/prelude.sail:148)))]),None)));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Operator("<_u"),model/prelude.sail:155),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("x"),model/prelude.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:149)),model/prelude.sail:149)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("y"),model/prelude.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:149)),model/prelude.sail:149)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:149)),model/prelude.sail:149)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:149)),model/prelude.sail:149)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/prelude.sail:155)),E_aux(E_app(Id_aux(Id("lt_int"),../sail/lib/flow.sail:49),[(E_aux(E_app(Id_aux(Id("unsigned"),model/prelude.sail:155),[(E_aux(E_id(Id_aux(Id("x"),model/prelude.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:149)),model/prelude.sail:149)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:149)),model/prelude.sail:149)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)));(E_aux(E_app(Id_aux(Id("unsigned"),model/prelude.sail:155),[(E_aux(E_id(Id_aux(Id("y"),model/prelude.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:149)),model/prelude.sail:149)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:149)),model/prelude.sail:149)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex381#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex382#"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_var(Kid_aux(Var("'ex382#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex382#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:149)),model/prelude.sail:149)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),Unknown)),Unknown),NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_var(Kid_aux(Var("'ex381#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex381#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:149)),model/prelude.sail:149)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'ex381#"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex382#"),Unknown)),Unknown)),../sail/lib/flow.sail:40)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:149)),model/prelude.sail:149)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:149)),model/prelude.sail:149)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:149)),model/prelude.sail:149),Effect_aux(Effect_set([]),model/prelude.sail:149)),model/prelude.sail:149)))]),None)));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Operator(">=_u"),model/prelude.sail:156),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("x"),model/prelude.sail:156)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:150)),model/prelude.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("y"),model/prelude.sail:156)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:150)),model/prelude.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:150)),model/prelude.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:150)),model/prelude.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/prelude.sail:156)),E_aux(E_app(Id_aux(Id("gteq_int"),../sail/lib/flow.sail:50),[(E_aux(E_app(Id_aux(Id("unsigned"),model/prelude.sail:156),[(E_aux(E_id(Id_aux(Id("x"),model/prelude.sail:156)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:150)),model/prelude.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:150)),model/prelude.sail:150)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)));(E_aux(E_app(Id_aux(Id("unsigned"),model/prelude.sail:156),[(E_aux(E_id(Id_aux(Id("y"),model/prelude.sail:156)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:150)),model/prelude.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:150)),model/prelude.sail:150)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex388#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex389#"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_var(Kid_aux(Var("'ex389#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex389#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:150)),model/prelude.sail:150)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),Unknown)),Unknown),NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_var(Kid_aux(Var("'ex388#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex388#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:150)),model/prelude.sail:150)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'ex388#"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex389#"),Unknown)),Unknown)),../sail/lib/flow.sail:39)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:150)),model/prelude.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:150)),model/prelude.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:150)),model/prelude.sail:150),Effect_aux(Effect_set([]),model/prelude.sail:150)),model/prelude.sail:150)))]),None)));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Operator("<=_u"),model/prelude.sail:157),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("x"),model/prelude.sail:157)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:151)),model/prelude.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("y"),model/prelude.sail:157)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:151)),model/prelude.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:151)),model/prelude.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:151)),model/prelude.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/prelude.sail:157)),E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("unsigned"),model/prelude.sail:157),[(E_aux(E_id(Id_aux(Id("x"),model/prelude.sail:157)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:151)),model/prelude.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:151)),model/prelude.sail:151)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)));(E_aux(E_app(Id_aux(Id("unsigned"),model/prelude.sail:157),[(E_aux(E_id(Id_aux(Id("y"),model/prelude.sail:157)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:151)),model/prelude.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:151)),model/prelude.sail:151)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex395#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex396#"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_var(Kid_aux(Var("'ex396#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex396#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:151)),model/prelude.sail:151)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),Unknown)),Unknown),NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_var(Kid_aux(Var("'ex395#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex395#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:151)),model/prelude.sail:151)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex395#"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex396#"),Unknown)),Unknown)),../sail/lib/flow.sail:38)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:151)),model/prelude.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:151)),model/prelude.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:151)),model/prelude.sail:151),Effect_aux(Effect_set([]),model/prelude.sail:151)),model/prelude.sail:151)))]),None)));(DEF_fixity(Infix,7,Id_aux(Id(">>"),model/prelude.sail:159)));(DEF_fixity(Infix,7,Id_aux(Id("<<"),model/prelude.sail:160)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("shift_bits_right"),model/prelude.sail:162),[_: "shift_bits_right"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:162),Kid_aux(Var("'n"),model/prelude.sail:162)),model/prelude.sail:162)),model/prelude.sail:162));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:162),Kid_aux(Var("'m"),model/prelude.sail:162)),model/prelude.sail:162)),model/prelude.sail:162))]),model/prelude.sail:162),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:162)),model/prelude.sail:162)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:162)),model/prelude.sail:162)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:162)),model/prelude.sail:162)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:162)),model/prelude.sail:162)),model/prelude.sail:162))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("shift_bits_left"),model/prelude.sail:163),[_: "shift_bits_left"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:163),Kid_aux(Var("'n"),model/prelude.sail:163)),model/prelude.sail:163)),model/prelude.sail:163));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:163),Kid_aux(Var("'m"),model/prelude.sail:163)),model/prelude.sail:163)),model/prelude.sail:163))]),model/prelude.sail:163),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:163)),model/prelude.sail:163)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:163)),model/prelude.sail:163)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:163)),model/prelude.sail:163)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:163)),model/prelude.sail:163)),model/prelude.sail:163))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("shiftl"),model/prelude.sail:165),[_: "shiftl"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:165),Kid_aux(Var("'m"),model/prelude.sail:165)),model/prelude.sail:165)),model/prelude.sail:165));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:165),Kid_aux(Var("'n"),model/prelude.sail:165)),model/prelude.sail:165)),model/prelude.sail:165));(QI_aux(QI_constraint(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:165)),model/prelude.sail:165),Nexp_aux(Nexp_constant(0),model/prelude.sail:165)),model/prelude.sail:165)),model/prelude.sail:165))]),model/prelude.sail:165),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:165)),model/prelude.sail:165)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude.sail:165),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:165)),model/prelude.sail:165)),model/prelude.sail:165))]),model/prelude.sail:165))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:165)),model/prelude.sail:165)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:165)),model/prelude.sail:165)),model/prelude.sail:165))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("shiftr"),model/prelude.sail:166),[_: "shiftr"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:166),Kid_aux(Var("'m"),model/prelude.sail:166)),model/prelude.sail:166)),model/prelude.sail:166));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:166),Kid_aux(Var("'n"),model/prelude.sail:166)),model/prelude.sail:166)),model/prelude.sail:166));(QI_aux(QI_constraint(NC_aux(NC_bounded_ge(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:166)),model/prelude.sail:166),Nexp_aux(Nexp_constant(0),model/prelude.sail:166)),model/prelude.sail:166)),model/prelude.sail:166))]),model/prelude.sail:166),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:166)),model/prelude.sail:166)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude.sail:166),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:166)),model/prelude.sail:166)),model/prelude.sail:166))]),model/prelude.sail:166))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude.sail:166)),model/prelude.sail:166)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude.sail:166)),model/prelude.sail:166)),model/prelude.sail:166))));(DEF_overload(Id_aux(Operator(">>"),model/prelude.sail:168),[(Id_aux(Id("shift_bits_right"),model/prelude.sail:168));(Id_aux(Id("shiftr"),model/prelude.sail:168))]));(DEF_overload(Id_aux(Operator("<<"),model/prelude.sail:169),[(Id_aux(Id("shift_bits_left"),model/prelude.sail:169));(Id_aux(Id("shiftl"),model/prelude.sail:169))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("shift_right_arith64"),model/prelude.sail:173),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/prelude.sail:173),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:173)),model/prelude.sail:173))]),model/prelude.sail:173));(Typ_aux(Typ_app(Id_aux(Id("bits"),model/prelude.sail:173),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude.sail:173)),model/prelude.sail:173))]),model/prelude.sail:173))],Typ_aux(Typ_app(Id_aux(Id("bits"),model/prelude.sail:173),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:173)),model/prelude.sail:173))]),model/prelude.sail:173),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("bits"),model/prelude.sail:173),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:173)),model/prelude.sail:173))]),model/prelude.sail:173)),model/prelude.sail:173),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("shift_right_arith64"),model/prelude.sail:173),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/prelude.sail:173),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:173)),model/prelude.sail:173))]),model/prelude.sail:173),P_aux(P_id(Id_aux(Id("v"),model/prelude.sail:173)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:173)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:173)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/prelude.sail:173),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude.sail:173)),model/prelude.sail:173))]),model/prelude.sail:173),P_aux(P_id(Id_aux(Id("shift"),model/prelude.sail:173)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude.sail:173)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude.sail:173)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:173)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude.sail:173)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/prelude.sail:173-175)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/prelude.sail:174),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(128),model/prelude.sail:174)),model/prelude.sail:174))]),model/prelude.sail:174),P_aux(P_id(Id_aux(Id("v128"),model/prelude.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(128),model/prelude.sail:174)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(128),model/prelude.sail:174)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTS"),model/prelude.sail:174),[(E_aux(E_lit(L_aux(L_num(128),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(128),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("v"),model/prelude.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:173)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(128),model/prelude.sail:174)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("shift_bits_right"),model/prelude.sail:168),[(E_aux(E_id(Id_aux(Id("v128"),model/prelude.sail:175)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(128),model/prelude.sail:174)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("shift"),model/prelude.sail:175)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude.sail:173)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(128),model/prelude.sail:174)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(63),model/prelude.sail:175)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/prelude.sail:175)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:173)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:173)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude.sail:173)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:173)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("shift_right_arith32"),model/prelude.sail:177),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/prelude.sail:177),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),model/prelude.sail:177))]),model/prelude.sail:177));(Typ_aux(Typ_app(Id_aux(Id("bits"),model/prelude.sail:177),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude.sail:177)),model/prelude.sail:177))]),model/prelude.sail:177))],Typ_aux(Typ_app(Id_aux(Id("bits"),model/prelude.sail:177),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),model/prelude.sail:177))]),model/prelude.sail:177),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("bits"),model/prelude.sail:177),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),model/prelude.sail:177))]),model/prelude.sail:177)),model/prelude.sail:177),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("shift_right_arith32"),model/prelude.sail:177),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/prelude.sail:177),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),model/prelude.sail:177))]),model/prelude.sail:177),P_aux(P_id(Id_aux(Id("v"),model/prelude.sail:177)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/prelude.sail:177),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude.sail:177)),model/prelude.sail:177))]),model/prelude.sail:177),P_aux(P_id(Id_aux(Id("shift"),model/prelude.sail:177)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/prelude.sail:177-179)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/prelude.sail:178),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:178)),model/prelude.sail:178))]),model/prelude.sail:178),P_aux(P_id(Id_aux(Id("v64"),model/prelude.sail:178)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:178)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:178)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTS"),model/prelude.sail:178),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("v"),model/prelude.sail:178)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:178)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("shift_bits_right"),model/prelude.sail:168),[(E_aux(E_id(Id_aux(Id("v64"),model/prelude.sail:179)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:178)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("shift"),model/prelude.sail:179)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:178)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/prelude.sail:179)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/prelude.sail:179)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("spc"),model/prelude.sail:183),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:183)),model/prelude.sail:183),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:183)),model/prelude.sail:183)),model/prelude.sail:183)),model/prelude.sail:183))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("opt_spc"),model/prelude.sail:184),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:184)),model/prelude.sail:184),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:184)),model/prelude.sail:184)),model/prelude.sail:184)),model/prelude.sail:184))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("def_spc"),model/prelude.sail:185),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:185)),model/prelude.sail:185),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:185)),model/prelude.sail:185)),model/prelude.sail:185)),model/prelude.sail:185))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("decimal_string_of_bits"),model/prelude.sail:187),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:187),Kid_aux(Var("'n"),model/prelude.sail:187)),model/prelude.sail:187)),model/prelude.sail:187))]),model/prelude.sail:187),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:187)),model/prelude.sail:187)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:187)),model/prelude.sail:187),Effect_aux(Effect_set([]),model/prelude.sail:187)),model/prelude.sail:187)),model/prelude.sail:187))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits"),model/prelude.sail:188),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude.sail:188),Kid_aux(Var("'n"),model/prelude.sail:188)),model/prelude.sail:188)),model/prelude.sail:188))]),model/prelude.sail:188),Typ_aux(Typ_bidir(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude.sail:188),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:188)),model/prelude.sail:188)),model/prelude.sail:188))]),model/prelude.sail:188));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude.sail:188)),model/prelude.sail:188)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/prelude.sail:188),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:188)),model/prelude.sail:188)),model/prelude.sail:188)),model/prelude.sail:188))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("n_leading_spaces"),model/prelude.sail:190),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:190)),model/prelude.sail:190))],Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:190)),model/prelude.sail:190),Effect_aux(Effect_set([]),model/prelude.sail:190)),model/prelude.sail:190)),model/prelude.sail:190))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("n_leading_spaces"),model/prelude.sail:191),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude.sail:191)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:190)),model/prelude.sail:190)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude.sail:192)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:190)),model/prelude.sail:190)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_string(""),model/prelude.sail:193)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_num(0),model/prelude.sail:193)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:190)),model/prelude.sail:190)),E_aux(E_case(E_aux(E_app(Id_aux(Id("string_take"),model/prelude.sail:194),[(E_aux(E_id(Id_aux(Id("s"),model/prelude.sail:194)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:190)),model/prelude.sail:190)));(E_aux(E_lit(L_aux(L_num(1),model/prelude.sail:194)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:12)),model/prelude.sail:12)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_string(" "),model/prelude.sail:195)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("add_atom"),../sail/lib/arith.sail:13),[(E_aux(E_lit(L_aux(L_num(1),model/prelude.sail:195)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("n_leading_spaces"),model/prelude.sail:195),[(E_aux(E_app(Id_aux(Id("string_drop"),model/prelude.sail:195),[(E_aux(E_id(Id_aux(Id("s"),model/prelude.sail:195)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:190)),model/prelude.sail:190)));(E_aux(E_lit(L_aux(L_num(1),model/prelude.sail:195)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:11)),model/prelude.sail:11)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:190)),model/prelude.sail:190)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex513#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex513#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex513#"),Unknown)),Unknown)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9))]),../sail/lib/arith.sail:9)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:12)),model/prelude.sail:12)),E_aux(E_lit(L_aux(L_num(0),model/prelude.sail:196)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:190)),model/prelude.sail:190))),None))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:190)),model/prelude.sail:190))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:190)),model/prelude.sail:190))],Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:190)),model/prelude.sail:190),Effect_aux(Effect_set([]),model/prelude.sail:190)),model/prelude.sail:190)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("spc_forwards"),model/prelude.sail:200),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:200)),model/prelude.sail:200))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:200)),model/prelude.sail:200),Effect_aux(Effect_set([]),model/prelude.sail:200)),model/prelude.sail:200)),model/prelude.sail:200))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("spc_forwards"),model/prelude.sail:201),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/prelude.sail:201)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_string(" "),model/prelude.sail:201)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:183)),model/prelude.sail:183))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:183)),model/prelude.sail:183),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("spc_backwards"),model/prelude.sail:202),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:202)),model/prelude.sail:202))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:202)),model/prelude.sail:202),Effect_aux(Effect_set([]),model/prelude.sail:202)),model/prelude.sail:202)),model/prelude.sail:202))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("spc_backwards"),model/prelude.sail:203),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude.sail:203)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:183)),model/prelude.sail:183)),E_aux(E_lit(L_aux(L_unit,model/prelude.sail:203)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:183)),model/prelude.sail:183))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:183)),model/prelude.sail:183),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("spc_matches_prefix"),model/prelude.sail:204),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:204)),model/prelude.sail:204))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude.sail:204),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:204)),model/prelude.sail:204));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:204)),model/prelude.sail:204))]),model/prelude.sail:204)),model/prelude.sail:204))]),model/prelude.sail:204),Effect_aux(Effect_set([]),model/prelude.sail:204)),model/prelude.sail:204)),model/prelude.sail:204))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("spc_matches_prefix"),model/prelude.sail:205),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude.sail:205)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:183)),model/prelude.sail:183)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("n"),model/prelude.sail:206)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("n_leading_spaces"),model/prelude.sail:206),[(E_aux(E_id(Id_aux(Id("s"),model/prelude.sail:206)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:183)),model/prelude.sail:183)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:190)),model/prelude.sail:190))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("n"),model/prelude.sail:207)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),model/prelude.sail:208)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("None"),model/prelude.sail:208),[(E_aux(E_lit(L_aux(L_unit,model/prelude.sail:208)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:183)),model/prelude.sail:183));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/prelude.sail:209),[(E_aux(E_tuple([(E_aux(E_lit(L_aux(L_unit,model/prelude.sail:209)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_id(Id_aux(Id("n"),model/prelude.sail:209)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:183)),model/prelude.sail:183));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:183)),model/prelude.sail:183));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:183)),model/prelude.sail:183));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:183)),model/prelude.sail:183));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:183)),model/prelude.sail:183));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:183)),model/prelude.sail:183));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:183)),model/prelude.sail:183))],Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:183)),model/prelude.sail:183));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("opt_spc_forwards"),model/prelude.sail:213),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:213)),model/prelude.sail:213))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:213)),model/prelude.sail:213),Effect_aux(Effect_set([]),model/prelude.sail:213)),model/prelude.sail:213)),model/prelude.sail:213))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("opt_spc_forwards"),model/prelude.sail:214),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/prelude.sail:214)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_string(""),model/prelude.sail:214)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:184)),model/prelude.sail:184))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:184)),model/prelude.sail:184),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("opt_spc_backwards"),model/prelude.sail:215),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:215)),model/prelude.sail:215))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:215)),model/prelude.sail:215),Effect_aux(Effect_set([]),model/prelude.sail:215)),model/prelude.sail:215)),model/prelude.sail:215))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("opt_spc_backwards"),model/prelude.sail:216),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude.sail:216)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:184)),model/prelude.sail:184)),E_aux(E_lit(L_aux(L_unit,model/prelude.sail:216)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:184)),model/prelude.sail:184))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:184)),model/prelude.sail:184),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("opt_spc_matches_prefix"),model/prelude.sail:217),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:217)),model/prelude.sail:217))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude.sail:217),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:217)),model/prelude.sail:217));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:217)),model/prelude.sail:217))]),model/prelude.sail:217)),model/prelude.sail:217))]),model/prelude.sail:217),Effect_aux(Effect_set([]),model/prelude.sail:217)),model/prelude.sail:217)),model/prelude.sail:217))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("opt_spc_matches_prefix"),model/prelude.sail:218),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude.sail:218)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:184)),model/prelude.sail:184)),E_aux(E_app(Id_aux(Id("Some"),model/prelude.sail:219),[(E_aux(E_tuple([(E_aux(E_lit(L_aux(L_unit,model/prelude.sail:219)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("n_leading_spaces"),model/prelude.sail:219),[(E_aux(E_id(Id_aux(Id("s"),model/prelude.sail:219)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:184)),model/prelude.sail:184)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:190)),model/prelude.sail:190)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:184)),model/prelude.sail:184));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:184)),model/prelude.sail:184));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:184)),model/prelude.sail:184))],Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:184)),model/prelude.sail:184));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("def_spc_forwards"),model/prelude.sail:221),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:221)),model/prelude.sail:221))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:221)),model/prelude.sail:221),Effect_aux(Effect_set([]),model/prelude.sail:221)),model/prelude.sail:221)),model/prelude.sail:221))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("def_spc_forwards"),model/prelude.sail:222),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/prelude.sail:222)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_string(" "),model/prelude.sail:222)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:185)),model/prelude.sail:185))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:185)),model/prelude.sail:185),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("def_spc_backwards"),model/prelude.sail:223),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:223)),model/prelude.sail:223))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:223)),model/prelude.sail:223),Effect_aux(Effect_set([]),model/prelude.sail:223)),model/prelude.sail:223)),model/prelude.sail:223))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("def_spc_backwards"),model/prelude.sail:224),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude.sail:224)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:185)),model/prelude.sail:185)),E_aux(E_lit(L_aux(L_unit,model/prelude.sail:224)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:185)),model/prelude.sail:185))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:185)),model/prelude.sail:185),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("def_spc_matches_prefix"),model/prelude.sail:225),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:225)),model/prelude.sail:225))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude.sail:225),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:225)),model/prelude.sail:225));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:225)),model/prelude.sail:225))]),model/prelude.sail:225)),model/prelude.sail:225))]),model/prelude.sail:225),Effect_aux(Effect_set([]),model/prelude.sail:225)),model/prelude.sail:225)),model/prelude.sail:225))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("def_spc_matches_prefix"),model/prelude.sail:226),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude.sail:226)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:185)),model/prelude.sail:185)),E_aux(E_app(Id_aux(Id("opt_spc_matches_prefix"),model/prelude.sail:226),[(E_aux(E_id(Id_aux(Id("s"),model/prelude.sail:226)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:185)),model/prelude.sail:185)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:184)),model/prelude.sail:184));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:185)),model/prelude.sail:185))],Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:185)),model/prelude.sail:185));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_1"),model/prelude_mapping.sail:34),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:34)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:34)),model/prelude_mapping.sail:34)),model/prelude_mapping.sail:34)),model/prelude_mapping.sail:34))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_1_forwards"),model/prelude_mapping.sail:35),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:35)),model/prelude_mapping.sail:35),Effect_aux(Effect_set([]),model/prelude_mapping.sail:35)),model/prelude_mapping.sail:35)),model/prelude_mapping.sail:35))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_1_forwards_matches"),model/prelude_mapping.sail:36),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:36)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:36)),model/prelude_mapping.sail:36),Effect_aux(Effect_set([]),model/prelude_mapping.sail:36)),model/prelude_mapping.sail:36)),model/prelude_mapping.sail:36))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_1_forwards_matches"),model/prelude_mapping.sail:37),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:34)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:37)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:34)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_1_matches_prefix"),model/prelude_mapping.sail:38),[_: "hex_bits_1_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:38)),model/prelude_mapping.sail:38))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:38),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:38)),model/prelude_mapping.sail:38))]),model/prelude_mapping.sail:38)),model/prelude_mapping.sail:38))]),model/prelude_mapping.sail:38),Effect_aux(Effect_set([]),model/prelude_mapping.sail:38)),model/prelude_mapping.sail:38)),model/prelude_mapping.sail:38))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_1_backwards_matches"),model/prelude_mapping.sail:39),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:39)),model/prelude_mapping.sail:39))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:39)),model/prelude_mapping.sail:39),Effect_aux(Effect_set([]),model/prelude_mapping.sail:39)),model/prelude_mapping.sail:39)),model/prelude_mapping.sail:39))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_1_backwards_matches"),model/prelude_mapping.sail:40),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:40)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:34)),model/prelude_mapping.sail:34)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:40)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:34)),model/prelude_mapping.sail:34)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:41)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:34)),model/prelude_mapping.sail:34)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_1_matches_prefix"),model/prelude_mapping.sail:41),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:41)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:34)),model/prelude_mapping.sail:34)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:34)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:42),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:34)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:42)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:34)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:34)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:42)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:42),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:42)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:34)),model/prelude_mapping.sail:34)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex528#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex528#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex528#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:42)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:34)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:43)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:44)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:34)),model/prelude_mapping.sail:34)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:45)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:34)),model/prelude_mapping.sail:34))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_1_backwards"),model/prelude_mapping.sail:47),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:47)),model/prelude_mapping.sail:47))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:47)),model/prelude_mapping.sail:47)),model/prelude_mapping.sail:47))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_1_backwards"),model/prelude_mapping.sail:48),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:48)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:34)),model/prelude_mapping.sail:34)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_1_matches_prefix"),model/prelude_mapping.sail:49),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:49)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:34)),model/prelude_mapping.sail:34)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:34)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:50),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:34)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:50)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:34)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:34)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:50)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:50),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:50)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:34)),model/prelude_mapping.sail:34)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex534#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex534#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex534#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:34)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:34)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:34)),model/prelude_mapping.sail:34))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude_mapping.sail:34)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_2"),model/prelude_mapping.sail:53),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:53)),model/prelude_mapping.sail:53)),model/prelude_mapping.sail:53)),model/prelude_mapping.sail:53))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_2_forwards"),model/prelude_mapping.sail:54),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:54)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:54)),model/prelude_mapping.sail:54),Effect_aux(Effect_set([]),model/prelude_mapping.sail:54)),model/prelude_mapping.sail:54)),model/prelude_mapping.sail:54))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_2_forwards_matches"),model/prelude_mapping.sail:55),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:55)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:55)),model/prelude_mapping.sail:55),Effect_aux(Effect_set([]),model/prelude_mapping.sail:55)),model/prelude_mapping.sail:55)),model/prelude_mapping.sail:55))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_2_forwards_matches"),model/prelude_mapping.sail:56),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:56)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:56)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_2_matches_prefix"),model/prelude_mapping.sail:57),[_: "hex_bits_2_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:57)),model/prelude_mapping.sail:57))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:57),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:57)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:57)),model/prelude_mapping.sail:57))]),model/prelude_mapping.sail:57)),model/prelude_mapping.sail:57))]),model/prelude_mapping.sail:57),Effect_aux(Effect_set([]),model/prelude_mapping.sail:57)),model/prelude_mapping.sail:57)),model/prelude_mapping.sail:57))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_2_backwards_matches"),model/prelude_mapping.sail:58),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:58)),model/prelude_mapping.sail:58))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:58)),model/prelude_mapping.sail:58),Effect_aux(Effect_set([]),model/prelude_mapping.sail:58)),model/prelude_mapping.sail:58)),model/prelude_mapping.sail:58))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_2_backwards_matches"),model/prelude_mapping.sail:59),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:59)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:53)),model/prelude_mapping.sail:53)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:59)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:53)),model/prelude_mapping.sail:53)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:60)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:53)),model/prelude_mapping.sail:53)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_2_matches_prefix"),model/prelude_mapping.sail:60),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:60)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:53)),model/prelude_mapping.sail:53)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:61),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:61),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:61)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:53)),model/prelude_mapping.sail:53)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex546#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex546#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex546#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:62)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:63)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:53)),model/prelude_mapping.sail:53)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:64)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:53)),model/prelude_mapping.sail:53))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_2_backwards"),model/prelude_mapping.sail:66),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:66)),model/prelude_mapping.sail:66))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:66)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:66)),model/prelude_mapping.sail:66)),model/prelude_mapping.sail:66))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_2_backwards"),model/prelude_mapping.sail:67),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:67)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:53)),model/prelude_mapping.sail:53)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_2_matches_prefix"),model/prelude_mapping.sail:68),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:68)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:53)),model/prelude_mapping.sail:53)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:69),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:69)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:69)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:69)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:69),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:69)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:53)),model/prelude_mapping.sail:53)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex552#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex552#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex552#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:69)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:53)),model/prelude_mapping.sail:53))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/prelude_mapping.sail:53)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_3"),model/prelude_mapping.sail:72),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:72)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:72)),model/prelude_mapping.sail:72)),model/prelude_mapping.sail:72)),model/prelude_mapping.sail:72))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_3_forwards"),model/prelude_mapping.sail:73),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:73)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:73)),model/prelude_mapping.sail:73),Effect_aux(Effect_set([]),model/prelude_mapping.sail:73)),model/prelude_mapping.sail:73)),model/prelude_mapping.sail:73))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_3_forwards_matches"),model/prelude_mapping.sail:74),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:74)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:74)),model/prelude_mapping.sail:74),Effect_aux(Effect_set([]),model/prelude_mapping.sail:74)),model/prelude_mapping.sail:74)),model/prelude_mapping.sail:74))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_3_forwards_matches"),model/prelude_mapping.sail:75),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:75)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:72)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:75)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:72)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_3_matches_prefix"),model/prelude_mapping.sail:76),[_: "hex_bits_3_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:76)),model/prelude_mapping.sail:76))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:76),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:76)),model/prelude_mapping.sail:76))]),model/prelude_mapping.sail:76)),model/prelude_mapping.sail:76))]),model/prelude_mapping.sail:76),Effect_aux(Effect_set([]),model/prelude_mapping.sail:76)),model/prelude_mapping.sail:76)),model/prelude_mapping.sail:76))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_3_backwards_matches"),model/prelude_mapping.sail:77),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:77)),model/prelude_mapping.sail:77))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:77)),model/prelude_mapping.sail:77),Effect_aux(Effect_set([]),model/prelude_mapping.sail:77)),model/prelude_mapping.sail:77)),model/prelude_mapping.sail:77))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_3_backwards_matches"),model/prelude_mapping.sail:78),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:78)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:72)),model/prelude_mapping.sail:72)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:78)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:72)),model/prelude_mapping.sail:72)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:79)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:72)),model/prelude_mapping.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_3_matches_prefix"),model/prelude_mapping.sail:79),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:79)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:72)),model/prelude_mapping.sail:72)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:72)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:80),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:72)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:80)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:72)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:72)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:80)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:80),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:80)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:72)),model/prelude_mapping.sail:72)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex564#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex564#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex564#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:80)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:72)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:81)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:82)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:72)),model/prelude_mapping.sail:72)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:83)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:72)),model/prelude_mapping.sail:72))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_3_backwards"),model/prelude_mapping.sail:85),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:85)),model/prelude_mapping.sail:85))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:85)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:85)),model/prelude_mapping.sail:85)),model/prelude_mapping.sail:85))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_3_backwards"),model/prelude_mapping.sail:86),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:86)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:72)),model/prelude_mapping.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_3_matches_prefix"),model/prelude_mapping.sail:87),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:87)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:72)),model/prelude_mapping.sail:72)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:72)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:88),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:88)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:72)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:88)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:72)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:72)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:88)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:88),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:88)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:72)),model/prelude_mapping.sail:72)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex570#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex570#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex570#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:88)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:72)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:72)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:72)),model/prelude_mapping.sail:72))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/prelude_mapping.sail:72)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_4"),model/prelude_mapping.sail:91),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:91)),model/prelude_mapping.sail:91)),model/prelude_mapping.sail:91)),model/prelude_mapping.sail:91))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_4_forwards"),model/prelude_mapping.sail:92),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:92)),model/prelude_mapping.sail:92),Effect_aux(Effect_set([]),model/prelude_mapping.sail:92)),model/prelude_mapping.sail:92)),model/prelude_mapping.sail:92))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_4_forwards_matches"),model/prelude_mapping.sail:93),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:93)),model/prelude_mapping.sail:93),Effect_aux(Effect_set([]),model/prelude_mapping.sail:93)),model/prelude_mapping.sail:93)),model/prelude_mapping.sail:93))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_4_forwards_matches"),model/prelude_mapping.sail:94),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:94)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:94)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_4_matches_prefix"),model/prelude_mapping.sail:95),[_: "hex_bits_4_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:95)),model/prelude_mapping.sail:95))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:95),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:95)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:95)),model/prelude_mapping.sail:95))]),model/prelude_mapping.sail:95)),model/prelude_mapping.sail:95))]),model/prelude_mapping.sail:95),Effect_aux(Effect_set([]),model/prelude_mapping.sail:95)),model/prelude_mapping.sail:95)),model/prelude_mapping.sail:95))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_4_backwards_matches"),model/prelude_mapping.sail:96),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:96)),model/prelude_mapping.sail:96))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:96)),model/prelude_mapping.sail:96),Effect_aux(Effect_set([]),model/prelude_mapping.sail:96)),model/prelude_mapping.sail:96)),model/prelude_mapping.sail:96))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_4_backwards_matches"),model/prelude_mapping.sail:97),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:97)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:91)),model/prelude_mapping.sail:91)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:97)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:91)),model/prelude_mapping.sail:91)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:98)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:91)),model/prelude_mapping.sail:91)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_4_matches_prefix"),model/prelude_mapping.sail:98),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:98)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:91)),model/prelude_mapping.sail:91)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:99),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:99)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:99)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:99),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:99)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:91)),model/prelude_mapping.sail:91)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex582#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex582#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex582#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:99)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:100)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:101)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:91)),model/prelude_mapping.sail:91)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:102)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:91)),model/prelude_mapping.sail:91))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_4_backwards"),model/prelude_mapping.sail:104),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:104)),model/prelude_mapping.sail:104))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:104)),model/prelude_mapping.sail:104)),model/prelude_mapping.sail:104))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_4_backwards"),model/prelude_mapping.sail:105),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:105)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:91)),model/prelude_mapping.sail:91)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_4_matches_prefix"),model/prelude_mapping.sail:106),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:106)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:91)),model/prelude_mapping.sail:91)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:107),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:107)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:107)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:107)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:107),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:107)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:91)),model/prelude_mapping.sail:91)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex588#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex588#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex588#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:107)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:91)),model/prelude_mapping.sail:91))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/prelude_mapping.sail:91)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_5"),model/prelude_mapping.sail:110),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:110)),model/prelude_mapping.sail:110)),model/prelude_mapping.sail:110)),model/prelude_mapping.sail:110))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_5_forwards"),model/prelude_mapping.sail:111),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:111)),model/prelude_mapping.sail:111),Effect_aux(Effect_set([]),model/prelude_mapping.sail:111)),model/prelude_mapping.sail:111)),model/prelude_mapping.sail:111))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_5_forwards_matches"),model/prelude_mapping.sail:112),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:112)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:112)),model/prelude_mapping.sail:112),Effect_aux(Effect_set([]),model/prelude_mapping.sail:112)),model/prelude_mapping.sail:112)),model/prelude_mapping.sail:112))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_5_forwards_matches"),model/prelude_mapping.sail:113),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_5_matches_prefix"),model/prelude_mapping.sail:114),[_: "hex_bits_5_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:114)),model/prelude_mapping.sail:114))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:114),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:114)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:114)),model/prelude_mapping.sail:114))]),model/prelude_mapping.sail:114)),model/prelude_mapping.sail:114))]),model/prelude_mapping.sail:114),Effect_aux(Effect_set([]),model/prelude_mapping.sail:114)),model/prelude_mapping.sail:114)),model/prelude_mapping.sail:114))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_5_backwards_matches"),model/prelude_mapping.sail:115),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:115)),model/prelude_mapping.sail:115))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:115)),model/prelude_mapping.sail:115),Effect_aux(Effect_set([]),model/prelude_mapping.sail:115)),model/prelude_mapping.sail:115)),model/prelude_mapping.sail:115))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_5_backwards_matches"),model/prelude_mapping.sail:116),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:116)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:110)),model/prelude_mapping.sail:110)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:116)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:110)),model/prelude_mapping.sail:110)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:117)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:110)),model/prelude_mapping.sail:110)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_5_matches_prefix"),model/prelude_mapping.sail:117),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:117)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:110)),model/prelude_mapping.sail:110)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:118),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:118)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:118)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:118),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:118)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:110)),model/prelude_mapping.sail:110)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex600#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex600#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex600#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:118)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:119)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:120)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:110)),model/prelude_mapping.sail:110)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:121)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:110)),model/prelude_mapping.sail:110))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_5_backwards"),model/prelude_mapping.sail:123),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:123)),model/prelude_mapping.sail:123))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:123)),model/prelude_mapping.sail:123)),model/prelude_mapping.sail:123))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_5_backwards"),model/prelude_mapping.sail:124),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:124)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:110)),model/prelude_mapping.sail:110)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_5_matches_prefix"),model/prelude_mapping.sail:125),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:125)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:110)),model/prelude_mapping.sail:110)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:126),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:126)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:126)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:126)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:126),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:126)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:110)),model/prelude_mapping.sail:110)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex606#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex606#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex606#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:126)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:110)),model/prelude_mapping.sail:110))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_6"),model/prelude_mapping.sail:129),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:129)),model/prelude_mapping.sail:129)),model/prelude_mapping.sail:129)),model/prelude_mapping.sail:129))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_6_forwards"),model/prelude_mapping.sail:130),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:130)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:130)),model/prelude_mapping.sail:130),Effect_aux(Effect_set([]),model/prelude_mapping.sail:130)),model/prelude_mapping.sail:130)),model/prelude_mapping.sail:130))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_6_forwards_matches"),model/prelude_mapping.sail:131),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:131)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:131)),model/prelude_mapping.sail:131),Effect_aux(Effect_set([]),model/prelude_mapping.sail:131)),model/prelude_mapping.sail:131)),model/prelude_mapping.sail:131))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_6_forwards_matches"),model/prelude_mapping.sail:132),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:132)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_6_matches_prefix"),model/prelude_mapping.sail:133),[_: "hex_bits_6_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:133)),model/prelude_mapping.sail:133))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:133),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:133)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:133)),model/prelude_mapping.sail:133))]),model/prelude_mapping.sail:133)),model/prelude_mapping.sail:133))]),model/prelude_mapping.sail:133),Effect_aux(Effect_set([]),model/prelude_mapping.sail:133)),model/prelude_mapping.sail:133)),model/prelude_mapping.sail:133))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_6_backwards_matches"),model/prelude_mapping.sail:134),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:134)),model/prelude_mapping.sail:134))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:134)),model/prelude_mapping.sail:134),Effect_aux(Effect_set([]),model/prelude_mapping.sail:134)),model/prelude_mapping.sail:134)),model/prelude_mapping.sail:134))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_6_backwards_matches"),model/prelude_mapping.sail:135),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:135)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:129)),model/prelude_mapping.sail:129)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:135)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:129)),model/prelude_mapping.sail:129)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:136)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:129)),model/prelude_mapping.sail:129)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_6_matches_prefix"),model/prelude_mapping.sail:136),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:136)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:129)),model/prelude_mapping.sail:129)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:137),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:137)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:137)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:137),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:137)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:129)),model/prelude_mapping.sail:129)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex618#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex618#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex618#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:137)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:138)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:139)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:129)),model/prelude_mapping.sail:129)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:140)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:129)),model/prelude_mapping.sail:129))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_6_backwards"),model/prelude_mapping.sail:142),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:142)),model/prelude_mapping.sail:142))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:142)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:142)),model/prelude_mapping.sail:142)),model/prelude_mapping.sail:142))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_6_backwards"),model/prelude_mapping.sail:143),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:143)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:129)),model/prelude_mapping.sail:129)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_6_matches_prefix"),model/prelude_mapping.sail:144),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:144)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:129)),model/prelude_mapping.sail:129)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:145),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:145)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:145)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:145),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:145)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:129)),model/prelude_mapping.sail:129)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex624#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex624#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex624#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:129)),model/prelude_mapping.sail:129))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_7"),model/prelude_mapping.sail:148),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:148)),model/prelude_mapping.sail:148)),model/prelude_mapping.sail:148)),model/prelude_mapping.sail:148))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_7_forwards"),model/prelude_mapping.sail:149),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:149)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:149)),model/prelude_mapping.sail:149),Effect_aux(Effect_set([]),model/prelude_mapping.sail:149)),model/prelude_mapping.sail:149)),model/prelude_mapping.sail:149))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_7_forwards_matches"),model/prelude_mapping.sail:150),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:150)),model/prelude_mapping.sail:150),Effect_aux(Effect_set([]),model/prelude_mapping.sail:150)),model/prelude_mapping.sail:150)),model/prelude_mapping.sail:150))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_7_forwards_matches"),model/prelude_mapping.sail:151),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:151)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:151)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_7_matches_prefix"),model/prelude_mapping.sail:152),[_: "hex_bits_7_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:152)),model/prelude_mapping.sail:152))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:152),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:152)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:152)),model/prelude_mapping.sail:152))]),model/prelude_mapping.sail:152)),model/prelude_mapping.sail:152))]),model/prelude_mapping.sail:152),Effect_aux(Effect_set([]),model/prelude_mapping.sail:152)),model/prelude_mapping.sail:152)),model/prelude_mapping.sail:152))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_7_backwards_matches"),model/prelude_mapping.sail:153),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:153)),model/prelude_mapping.sail:153))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:153)),model/prelude_mapping.sail:153),Effect_aux(Effect_set([]),model/prelude_mapping.sail:153)),model/prelude_mapping.sail:153)),model/prelude_mapping.sail:153))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_7_backwards_matches"),model/prelude_mapping.sail:154),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:154)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:148)),model/prelude_mapping.sail:148)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:154)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:148)),model/prelude_mapping.sail:148)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:155)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:148)),model/prelude_mapping.sail:148)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_7_matches_prefix"),model/prelude_mapping.sail:155),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:155)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:148)),model/prelude_mapping.sail:148)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:156),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:156)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:156)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:156),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:156)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:148)),model/prelude_mapping.sail:148)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex636#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex636#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex636#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:156)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:157)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:158)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:148)),model/prelude_mapping.sail:148)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:159)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:148)),model/prelude_mapping.sail:148))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_7_backwards"),model/prelude_mapping.sail:161),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:161)),model/prelude_mapping.sail:161))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:161)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:161)),model/prelude_mapping.sail:161)),model/prelude_mapping.sail:161))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_7_backwards"),model/prelude_mapping.sail:162),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:162)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:148)),model/prelude_mapping.sail:148)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_7_matches_prefix"),model/prelude_mapping.sail:163),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:163)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:148)),model/prelude_mapping.sail:148)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:164),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:164)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:164)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:164)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:164),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:164)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:148)),model/prelude_mapping.sail:148)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex642#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex642#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex642#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:164)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:148)),model/prelude_mapping.sail:148))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/prelude_mapping.sail:148)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_8"),model/prelude_mapping.sail:167),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:167)),model/prelude_mapping.sail:167)),model/prelude_mapping.sail:167)),model/prelude_mapping.sail:167))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_8_forwards"),model/prelude_mapping.sail:168),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:168)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:168)),model/prelude_mapping.sail:168),Effect_aux(Effect_set([]),model/prelude_mapping.sail:168)),model/prelude_mapping.sail:168)),model/prelude_mapping.sail:168))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_8_forwards_matches"),model/prelude_mapping.sail:169),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:169)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:169)),model/prelude_mapping.sail:169),Effect_aux(Effect_set([]),model/prelude_mapping.sail:169)),model/prelude_mapping.sail:169)),model/prelude_mapping.sail:169))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_8_forwards_matches"),model/prelude_mapping.sail:170),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:170)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:170)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_8_matches_prefix"),model/prelude_mapping.sail:171),[_: "hex_bits_8_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:171)),model/prelude_mapping.sail:171))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:171),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:171)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:171)),model/prelude_mapping.sail:171))]),model/prelude_mapping.sail:171)),model/prelude_mapping.sail:171))]),model/prelude_mapping.sail:171),Effect_aux(Effect_set([]),model/prelude_mapping.sail:171)),model/prelude_mapping.sail:171)),model/prelude_mapping.sail:171))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_8_backwards_matches"),model/prelude_mapping.sail:172),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:172)),model/prelude_mapping.sail:172))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:172)),model/prelude_mapping.sail:172),Effect_aux(Effect_set([]),model/prelude_mapping.sail:172)),model/prelude_mapping.sail:172)),model/prelude_mapping.sail:172))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_8_backwards_matches"),model/prelude_mapping.sail:173),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:173)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:167)),model/prelude_mapping.sail:167)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:173)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:167)),model/prelude_mapping.sail:167)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:174)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:167)),model/prelude_mapping.sail:167)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_8_matches_prefix"),model/prelude_mapping.sail:174),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:174)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:167)),model/prelude_mapping.sail:167)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:175),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:175)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:175)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:175),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:175)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:167)),model/prelude_mapping.sail:167)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex654#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex654#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex654#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:175)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:176)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:177)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:167)),model/prelude_mapping.sail:167)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:178)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:167)),model/prelude_mapping.sail:167))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_8_backwards"),model/prelude_mapping.sail:180),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:180)),model/prelude_mapping.sail:180))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:180)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:180)),model/prelude_mapping.sail:180)),model/prelude_mapping.sail:180))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_8_backwards"),model/prelude_mapping.sail:181),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:181)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:167)),model/prelude_mapping.sail:167)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_8_matches_prefix"),model/prelude_mapping.sail:182),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:182)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:167)),model/prelude_mapping.sail:167)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:183),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:183)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:183)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:183)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:183),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:183)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:167)),model/prelude_mapping.sail:167)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex660#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex660#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex660#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:183)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:167)),model/prelude_mapping.sail:167))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_9"),model/prelude_mapping.sail:186),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:186)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:186)),model/prelude_mapping.sail:186)),model/prelude_mapping.sail:186)),model/prelude_mapping.sail:186))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_9_forwards"),model/prelude_mapping.sail:187),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:187)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:187)),model/prelude_mapping.sail:187),Effect_aux(Effect_set([]),model/prelude_mapping.sail:187)),model/prelude_mapping.sail:187)),model/prelude_mapping.sail:187))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_9_forwards_matches"),model/prelude_mapping.sail:188),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:188)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:188)),model/prelude_mapping.sail:188),Effect_aux(Effect_set([]),model/prelude_mapping.sail:188)),model/prelude_mapping.sail:188)),model/prelude_mapping.sail:188))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_9_forwards_matches"),model/prelude_mapping.sail:189),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:189)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:186)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:189)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:186)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_9_matches_prefix"),model/prelude_mapping.sail:190),[_: "hex_bits_9_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:190)),model/prelude_mapping.sail:190))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:190),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:190)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:190)),model/prelude_mapping.sail:190))]),model/prelude_mapping.sail:190)),model/prelude_mapping.sail:190))]),model/prelude_mapping.sail:190),Effect_aux(Effect_set([]),model/prelude_mapping.sail:190)),model/prelude_mapping.sail:190)),model/prelude_mapping.sail:190))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_9_backwards_matches"),model/prelude_mapping.sail:191),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:191)),model/prelude_mapping.sail:191))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:191)),model/prelude_mapping.sail:191),Effect_aux(Effect_set([]),model/prelude_mapping.sail:191)),model/prelude_mapping.sail:191)),model/prelude_mapping.sail:191))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_9_backwards_matches"),model/prelude_mapping.sail:192),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:192)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:186)),model/prelude_mapping.sail:186)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:192)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:186)),model/prelude_mapping.sail:186)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:193)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:186)),model/prelude_mapping.sail:186)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_9_matches_prefix"),model/prelude_mapping.sail:193),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:193)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:186)),model/prelude_mapping.sail:186)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:186)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:194),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:186)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:194)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:186)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:186)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:194)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:194),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:194)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:186)),model/prelude_mapping.sail:186)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex672#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex672#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex672#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:194)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:186)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:195)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:196)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:186)),model/prelude_mapping.sail:186)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:197)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:186)),model/prelude_mapping.sail:186))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_9_backwards"),model/prelude_mapping.sail:199),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:199)),model/prelude_mapping.sail:199))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:199)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:199)),model/prelude_mapping.sail:199)),model/prelude_mapping.sail:199))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_9_backwards"),model/prelude_mapping.sail:200),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:200)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:186)),model/prelude_mapping.sail:186)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_9_matches_prefix"),model/prelude_mapping.sail:201),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:201)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:186)),model/prelude_mapping.sail:186)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:186)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:202),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:186)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:202)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:186)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:186)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:202)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:202),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:202)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:186)),model/prelude_mapping.sail:186)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex678#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex678#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex678#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:186)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:186)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:186)),model/prelude_mapping.sail:186))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/prelude_mapping.sail:186)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_10"),model/prelude_mapping.sail:205),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:205)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:205)),model/prelude_mapping.sail:205)),model/prelude_mapping.sail:205)),model/prelude_mapping.sail:205))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_10_forwards"),model/prelude_mapping.sail:206),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:206)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:206)),model/prelude_mapping.sail:206),Effect_aux(Effect_set([]),model/prelude_mapping.sail:206)),model/prelude_mapping.sail:206)),model/prelude_mapping.sail:206))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_10_forwards_matches"),model/prelude_mapping.sail:207),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:207)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:207)),model/prelude_mapping.sail:207),Effect_aux(Effect_set([]),model/prelude_mapping.sail:207)),model/prelude_mapping.sail:207)),model/prelude_mapping.sail:207))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_10_forwards_matches"),model/prelude_mapping.sail:208),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:208)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:205)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:208)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:205)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_10_matches_prefix"),model/prelude_mapping.sail:209),[_: "hex_bits_10_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:209)),model/prelude_mapping.sail:209))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:209),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:209)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:209)),model/prelude_mapping.sail:209))]),model/prelude_mapping.sail:209)),model/prelude_mapping.sail:209))]),model/prelude_mapping.sail:209),Effect_aux(Effect_set([]),model/prelude_mapping.sail:209)),model/prelude_mapping.sail:209)),model/prelude_mapping.sail:209))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_10_backwards_matches"),model/prelude_mapping.sail:210),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:210)),model/prelude_mapping.sail:210))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:210)),model/prelude_mapping.sail:210),Effect_aux(Effect_set([]),model/prelude_mapping.sail:210)),model/prelude_mapping.sail:210)),model/prelude_mapping.sail:210))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_10_backwards_matches"),model/prelude_mapping.sail:211),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:211)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:205)),model/prelude_mapping.sail:205)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:211)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:205)),model/prelude_mapping.sail:205)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:212)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:205)),model/prelude_mapping.sail:205)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_10_matches_prefix"),model/prelude_mapping.sail:212),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:212)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:205)),model/prelude_mapping.sail:205)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:205)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:213),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:205)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:213)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:205)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:205)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:213)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:213),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:213)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:205)),model/prelude_mapping.sail:205)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex690#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex690#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex690#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:213)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:205)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:214)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:215)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:205)),model/prelude_mapping.sail:205)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:216)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:205)),model/prelude_mapping.sail:205))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_10_backwards"),model/prelude_mapping.sail:218),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:218)),model/prelude_mapping.sail:218))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:218)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:218)),model/prelude_mapping.sail:218)),model/prelude_mapping.sail:218))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_10_backwards"),model/prelude_mapping.sail:219),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:219)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:205)),model/prelude_mapping.sail:205)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_10_matches_prefix"),model/prelude_mapping.sail:220),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:220)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:205)),model/prelude_mapping.sail:205)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:205)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:221),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:221)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:205)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:221)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:205)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:205)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:221)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:221),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:221)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:205)),model/prelude_mapping.sail:205)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex696#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex696#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex696#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:221)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:205)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:205)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:205)),model/prelude_mapping.sail:205))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/prelude_mapping.sail:205)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_11"),model/prelude_mapping.sail:224),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:224)),model/prelude_mapping.sail:224)),model/prelude_mapping.sail:224)),model/prelude_mapping.sail:224))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_11_forwards"),model/prelude_mapping.sail:225),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:225)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:225)),model/prelude_mapping.sail:225),Effect_aux(Effect_set([]),model/prelude_mapping.sail:225)),model/prelude_mapping.sail:225)),model/prelude_mapping.sail:225))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_11_forwards_matches"),model/prelude_mapping.sail:226),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:226)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:226)),model/prelude_mapping.sail:226),Effect_aux(Effect_set([]),model/prelude_mapping.sail:226)),model/prelude_mapping.sail:226)),model/prelude_mapping.sail:226))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_11_forwards_matches"),model/prelude_mapping.sail:227),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:227)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:227)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_11_matches_prefix"),model/prelude_mapping.sail:228),[_: "hex_bits_11_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:228)),model/prelude_mapping.sail:228))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:228),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:228)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:228)),model/prelude_mapping.sail:228))]),model/prelude_mapping.sail:228)),model/prelude_mapping.sail:228))]),model/prelude_mapping.sail:228),Effect_aux(Effect_set([]),model/prelude_mapping.sail:228)),model/prelude_mapping.sail:228)),model/prelude_mapping.sail:228))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_11_backwards_matches"),model/prelude_mapping.sail:229),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:229)),model/prelude_mapping.sail:229))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:229)),model/prelude_mapping.sail:229),Effect_aux(Effect_set([]),model/prelude_mapping.sail:229)),model/prelude_mapping.sail:229)),model/prelude_mapping.sail:229))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_11_backwards_matches"),model/prelude_mapping.sail:230),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:230)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:224)),model/prelude_mapping.sail:224)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:230)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:224)),model/prelude_mapping.sail:224)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:231)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:224)),model/prelude_mapping.sail:224)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_11_matches_prefix"),model/prelude_mapping.sail:231),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:231)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:224)),model/prelude_mapping.sail:224)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:232),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:232)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:232)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:232),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:232)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:224)),model/prelude_mapping.sail:224)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex708#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex708#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex708#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:232)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:233)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:234)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:224)),model/prelude_mapping.sail:224)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:235)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:224)),model/prelude_mapping.sail:224))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_11_backwards"),model/prelude_mapping.sail:237),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:237)),model/prelude_mapping.sail:237))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:237)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:237)),model/prelude_mapping.sail:237)),model/prelude_mapping.sail:237))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_11_backwards"),model/prelude_mapping.sail:238),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:238)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:224)),model/prelude_mapping.sail:224)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_11_matches_prefix"),model/prelude_mapping.sail:239),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:239)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:224)),model/prelude_mapping.sail:224)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:240),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:240)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:240)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:240)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:240),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:240)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:224)),model/prelude_mapping.sail:224)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex714#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex714#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex714#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:240)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:224)),model/prelude_mapping.sail:224))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_12"),model/prelude_mapping.sail:243),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:243)),model/prelude_mapping.sail:243)),model/prelude_mapping.sail:243)),model/prelude_mapping.sail:243))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_12_forwards"),model/prelude_mapping.sail:244),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:244)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:244)),model/prelude_mapping.sail:244),Effect_aux(Effect_set([]),model/prelude_mapping.sail:244)),model/prelude_mapping.sail:244)),model/prelude_mapping.sail:244))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_12_forwards_matches"),model/prelude_mapping.sail:245),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:245)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:245)),model/prelude_mapping.sail:245),Effect_aux(Effect_set([]),model/prelude_mapping.sail:245)),model/prelude_mapping.sail:245)),model/prelude_mapping.sail:245))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_12_forwards_matches"),model/prelude_mapping.sail:246),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:246)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:246)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_12_matches_prefix"),model/prelude_mapping.sail:247),[_: "hex_bits_12_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:247)),model/prelude_mapping.sail:247))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:247),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:247)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:247)),model/prelude_mapping.sail:247))]),model/prelude_mapping.sail:247)),model/prelude_mapping.sail:247))]),model/prelude_mapping.sail:247),Effect_aux(Effect_set([]),model/prelude_mapping.sail:247)),model/prelude_mapping.sail:247)),model/prelude_mapping.sail:247))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_12_backwards_matches"),model/prelude_mapping.sail:248),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:248)),model/prelude_mapping.sail:248))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:248)),model/prelude_mapping.sail:248),Effect_aux(Effect_set([]),model/prelude_mapping.sail:248)),model/prelude_mapping.sail:248)),model/prelude_mapping.sail:248))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_12_backwards_matches"),model/prelude_mapping.sail:249),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:249)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:243)),model/prelude_mapping.sail:243)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:249)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:243)),model/prelude_mapping.sail:243)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:250)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:243)),model/prelude_mapping.sail:243)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_12_matches_prefix"),model/prelude_mapping.sail:250),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:250)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:243)),model/prelude_mapping.sail:243)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:251),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:251)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:251)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:251),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:251)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:243)),model/prelude_mapping.sail:243)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex726#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex726#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex726#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:251)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:252)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:253)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:243)),model/prelude_mapping.sail:243)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:254)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:243)),model/prelude_mapping.sail:243))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_12_backwards"),model/prelude_mapping.sail:256),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:256)),model/prelude_mapping.sail:256))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:256)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:256)),model/prelude_mapping.sail:256)),model/prelude_mapping.sail:256))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_12_backwards"),model/prelude_mapping.sail:257),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:257)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:243)),model/prelude_mapping.sail:243)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_12_matches_prefix"),model/prelude_mapping.sail:258),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:258)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:243)),model/prelude_mapping.sail:243)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:259),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:259)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:259)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:259)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:259),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:259)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:243)),model/prelude_mapping.sail:243)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex732#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex732#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex732#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:259)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:243)),model/prelude_mapping.sail:243))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_13"),model/prelude_mapping.sail:262),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:262)),model/prelude_mapping.sail:262)),model/prelude_mapping.sail:262)),model/prelude_mapping.sail:262))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_13_forwards"),model/prelude_mapping.sail:263),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:263)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:263)),model/prelude_mapping.sail:263),Effect_aux(Effect_set([]),model/prelude_mapping.sail:263)),model/prelude_mapping.sail:263)),model/prelude_mapping.sail:263))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_13_forwards_matches"),model/prelude_mapping.sail:264),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:264)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:264)),model/prelude_mapping.sail:264),Effect_aux(Effect_set([]),model/prelude_mapping.sail:264)),model/prelude_mapping.sail:264)),model/prelude_mapping.sail:264))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_13_forwards_matches"),model/prelude_mapping.sail:265),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:265)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:265)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_13_matches_prefix"),model/prelude_mapping.sail:266),[_: "hex_bits_13_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:266)),model/prelude_mapping.sail:266))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:266),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:266)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:266)),model/prelude_mapping.sail:266))]),model/prelude_mapping.sail:266)),model/prelude_mapping.sail:266))]),model/prelude_mapping.sail:266),Effect_aux(Effect_set([]),model/prelude_mapping.sail:266)),model/prelude_mapping.sail:266)),model/prelude_mapping.sail:266))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_13_backwards_matches"),model/prelude_mapping.sail:267),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:267)),model/prelude_mapping.sail:267))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:267)),model/prelude_mapping.sail:267),Effect_aux(Effect_set([]),model/prelude_mapping.sail:267)),model/prelude_mapping.sail:267)),model/prelude_mapping.sail:267))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_13_backwards_matches"),model/prelude_mapping.sail:268),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:268)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:262)),model/prelude_mapping.sail:262)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:268)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:262)),model/prelude_mapping.sail:262)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:269)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:262)),model/prelude_mapping.sail:262)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_13_matches_prefix"),model/prelude_mapping.sail:269),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:269)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:262)),model/prelude_mapping.sail:262)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:270),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:270)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:270)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:270),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:270)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:262)),model/prelude_mapping.sail:262)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex744#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex744#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex744#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:270)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:271)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:272)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:262)),model/prelude_mapping.sail:262)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:273)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:262)),model/prelude_mapping.sail:262))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_13_backwards"),model/prelude_mapping.sail:275),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:275)),model/prelude_mapping.sail:275))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:275)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:275)),model/prelude_mapping.sail:275)),model/prelude_mapping.sail:275))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_13_backwards"),model/prelude_mapping.sail:276),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:276)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:262)),model/prelude_mapping.sail:262)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_13_matches_prefix"),model/prelude_mapping.sail:277),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:277)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:262)),model/prelude_mapping.sail:262)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:278),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:278)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:278)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:278)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:278),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:278)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:262)),model/prelude_mapping.sail:262)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex750#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex750#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex750#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:278)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:262)),model/prelude_mapping.sail:262))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_14"),model/prelude_mapping.sail:281),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:281)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:281)),model/prelude_mapping.sail:281)),model/prelude_mapping.sail:281)),model/prelude_mapping.sail:281))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_14_forwards"),model/prelude_mapping.sail:282),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:282)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:282)),model/prelude_mapping.sail:282),Effect_aux(Effect_set([]),model/prelude_mapping.sail:282)),model/prelude_mapping.sail:282)),model/prelude_mapping.sail:282))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_14_forwards_matches"),model/prelude_mapping.sail:283),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:283)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:283)),model/prelude_mapping.sail:283),Effect_aux(Effect_set([]),model/prelude_mapping.sail:283)),model/prelude_mapping.sail:283)),model/prelude_mapping.sail:283))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_14_forwards_matches"),model/prelude_mapping.sail:284),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:281)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:284)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:281)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_14_matches_prefix"),model/prelude_mapping.sail:285),[_: "hex_bits_14_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:285)),model/prelude_mapping.sail:285))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:285),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:285)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:285)),model/prelude_mapping.sail:285))]),model/prelude_mapping.sail:285)),model/prelude_mapping.sail:285))]),model/prelude_mapping.sail:285),Effect_aux(Effect_set([]),model/prelude_mapping.sail:285)),model/prelude_mapping.sail:285)),model/prelude_mapping.sail:285))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_14_backwards_matches"),model/prelude_mapping.sail:286),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:286)),model/prelude_mapping.sail:286))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:286)),model/prelude_mapping.sail:286),Effect_aux(Effect_set([]),model/prelude_mapping.sail:286)),model/prelude_mapping.sail:286)),model/prelude_mapping.sail:286))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_14_backwards_matches"),model/prelude_mapping.sail:287),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:287)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:281)),model/prelude_mapping.sail:281)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:287)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:281)),model/prelude_mapping.sail:281)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:288)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:281)),model/prelude_mapping.sail:281)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_14_matches_prefix"),model/prelude_mapping.sail:288),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:288)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:281)),model/prelude_mapping.sail:281)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:281)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:289),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:281)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:289)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:281)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:281)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:289)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:289),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:289)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:281)),model/prelude_mapping.sail:281)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex762#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex762#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex762#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:289)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:281)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:290)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:291)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:281)),model/prelude_mapping.sail:281)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:292)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:281)),model/prelude_mapping.sail:281))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_14_backwards"),model/prelude_mapping.sail:294),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:294)),model/prelude_mapping.sail:294))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:294)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:294)),model/prelude_mapping.sail:294)),model/prelude_mapping.sail:294))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_14_backwards"),model/prelude_mapping.sail:295),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:295)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:281)),model/prelude_mapping.sail:281)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_14_matches_prefix"),model/prelude_mapping.sail:296),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:296)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:281)),model/prelude_mapping.sail:281)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:281)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:297),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:297)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:281)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:297)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:281)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:281)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:297)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:297),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:297)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:281)),model/prelude_mapping.sail:281)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex768#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex768#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex768#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:297)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:281)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:281)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:281)),model/prelude_mapping.sail:281))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),model/prelude_mapping.sail:281)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_15"),model/prelude_mapping.sail:300),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:300)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:300)),model/prelude_mapping.sail:300)),model/prelude_mapping.sail:300)),model/prelude_mapping.sail:300))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_15_forwards"),model/prelude_mapping.sail:301),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:301)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:301)),model/prelude_mapping.sail:301),Effect_aux(Effect_set([]),model/prelude_mapping.sail:301)),model/prelude_mapping.sail:301)),model/prelude_mapping.sail:301))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_15_forwards_matches"),model/prelude_mapping.sail:302),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:302)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:302)),model/prelude_mapping.sail:302),Effect_aux(Effect_set([]),model/prelude_mapping.sail:302)),model/prelude_mapping.sail:302)),model/prelude_mapping.sail:302))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_15_forwards_matches"),model/prelude_mapping.sail:303),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:303)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:300)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:303)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:300)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_15_matches_prefix"),model/prelude_mapping.sail:304),[_: "hex_bits_15_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:304)),model/prelude_mapping.sail:304))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:304),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:304)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:304)),model/prelude_mapping.sail:304))]),model/prelude_mapping.sail:304)),model/prelude_mapping.sail:304))]),model/prelude_mapping.sail:304),Effect_aux(Effect_set([]),model/prelude_mapping.sail:304)),model/prelude_mapping.sail:304)),model/prelude_mapping.sail:304))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_15_backwards_matches"),model/prelude_mapping.sail:305),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:305)),model/prelude_mapping.sail:305))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:305)),model/prelude_mapping.sail:305),Effect_aux(Effect_set([]),model/prelude_mapping.sail:305)),model/prelude_mapping.sail:305)),model/prelude_mapping.sail:305))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_15_backwards_matches"),model/prelude_mapping.sail:306),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:306)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:300)),model/prelude_mapping.sail:300)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:306)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:300)),model/prelude_mapping.sail:300)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:307)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:300)),model/prelude_mapping.sail:300)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_15_matches_prefix"),model/prelude_mapping.sail:307),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:307)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:300)),model/prelude_mapping.sail:300)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:300)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:308),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:300)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:308)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:300)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:300)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:308)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:308),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:308)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:300)),model/prelude_mapping.sail:300)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex780#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex780#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex780#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:308)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:300)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:309)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:310)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:300)),model/prelude_mapping.sail:300)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:311)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:300)),model/prelude_mapping.sail:300))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_15_backwards"),model/prelude_mapping.sail:313),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:313)),model/prelude_mapping.sail:313))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:313)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:313)),model/prelude_mapping.sail:313)),model/prelude_mapping.sail:313))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_15_backwards"),model/prelude_mapping.sail:314),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:314)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:300)),model/prelude_mapping.sail:300)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_15_matches_prefix"),model/prelude_mapping.sail:315),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:315)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:300)),model/prelude_mapping.sail:300)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:300)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:316),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:316)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:300)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:316)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:300)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:300)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:316)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:316),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:316)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:300)),model/prelude_mapping.sail:300)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex786#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex786#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex786#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:316)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:300)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:300)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:300)),model/prelude_mapping.sail:300))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),model/prelude_mapping.sail:300)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_16"),model/prelude_mapping.sail:319),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:319)),model/prelude_mapping.sail:319)),model/prelude_mapping.sail:319)),model/prelude_mapping.sail:319))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_16_forwards"),model/prelude_mapping.sail:320),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:320)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:320)),model/prelude_mapping.sail:320),Effect_aux(Effect_set([]),model/prelude_mapping.sail:320)),model/prelude_mapping.sail:320)),model/prelude_mapping.sail:320))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_16_forwards_matches"),model/prelude_mapping.sail:321),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:321)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:321)),model/prelude_mapping.sail:321),Effect_aux(Effect_set([]),model/prelude_mapping.sail:321)),model/prelude_mapping.sail:321)),model/prelude_mapping.sail:321))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_16_forwards_matches"),model/prelude_mapping.sail:322),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:322)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:322)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_16_matches_prefix"),model/prelude_mapping.sail:323),[_: "hex_bits_16_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:323)),model/prelude_mapping.sail:323))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:323),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:323)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:323)),model/prelude_mapping.sail:323))]),model/prelude_mapping.sail:323)),model/prelude_mapping.sail:323))]),model/prelude_mapping.sail:323),Effect_aux(Effect_set([]),model/prelude_mapping.sail:323)),model/prelude_mapping.sail:323)),model/prelude_mapping.sail:323))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_16_backwards_matches"),model/prelude_mapping.sail:324),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:324)),model/prelude_mapping.sail:324))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:324)),model/prelude_mapping.sail:324),Effect_aux(Effect_set([]),model/prelude_mapping.sail:324)),model/prelude_mapping.sail:324)),model/prelude_mapping.sail:324))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_16_backwards_matches"),model/prelude_mapping.sail:325),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:325)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:319)),model/prelude_mapping.sail:319)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:325)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:319)),model/prelude_mapping.sail:319)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:326)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:319)),model/prelude_mapping.sail:319)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_16_matches_prefix"),model/prelude_mapping.sail:326),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:326)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:319)),model/prelude_mapping.sail:319)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:327),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:327)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:327)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:327),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:327)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:319)),model/prelude_mapping.sail:319)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex798#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex798#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex798#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:327)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:328)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:329)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:319)),model/prelude_mapping.sail:319)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:330)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:319)),model/prelude_mapping.sail:319))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_16_backwards"),model/prelude_mapping.sail:332),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:332)),model/prelude_mapping.sail:332))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:332)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:332)),model/prelude_mapping.sail:332)),model/prelude_mapping.sail:332))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_16_backwards"),model/prelude_mapping.sail:333),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:333)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:319)),model/prelude_mapping.sail:319)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_16_matches_prefix"),model/prelude_mapping.sail:334),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:334)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:319)),model/prelude_mapping.sail:319)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:335),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:335)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:335)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:335)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:335),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:335)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:319)),model/prelude_mapping.sail:319)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex804#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex804#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex804#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:335)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:319)),model/prelude_mapping.sail:319))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_17"),model/prelude_mapping.sail:338),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:338)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:338)),model/prelude_mapping.sail:338)),model/prelude_mapping.sail:338)),model/prelude_mapping.sail:338))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_17_forwards"),model/prelude_mapping.sail:339),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:339)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:339)),model/prelude_mapping.sail:339),Effect_aux(Effect_set([]),model/prelude_mapping.sail:339)),model/prelude_mapping.sail:339)),model/prelude_mapping.sail:339))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_17_forwards_matches"),model/prelude_mapping.sail:340),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:340)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:340)),model/prelude_mapping.sail:340),Effect_aux(Effect_set([]),model/prelude_mapping.sail:340)),model/prelude_mapping.sail:340)),model/prelude_mapping.sail:340))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_17_forwards_matches"),model/prelude_mapping.sail:341),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:341)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:338)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:341)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:338)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_17_matches_prefix"),model/prelude_mapping.sail:342),[_: "hex_bits_17_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:342)),model/prelude_mapping.sail:342))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:342),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:342)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:342)),model/prelude_mapping.sail:342))]),model/prelude_mapping.sail:342)),model/prelude_mapping.sail:342))]),model/prelude_mapping.sail:342),Effect_aux(Effect_set([]),model/prelude_mapping.sail:342)),model/prelude_mapping.sail:342)),model/prelude_mapping.sail:342))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_17_backwards_matches"),model/prelude_mapping.sail:343),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:343)),model/prelude_mapping.sail:343))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:343)),model/prelude_mapping.sail:343),Effect_aux(Effect_set([]),model/prelude_mapping.sail:343)),model/prelude_mapping.sail:343)),model/prelude_mapping.sail:343))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_17_backwards_matches"),model/prelude_mapping.sail:344),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:344)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:338)),model/prelude_mapping.sail:338)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:344)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:338)),model/prelude_mapping.sail:338)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:345)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:338)),model/prelude_mapping.sail:338)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_17_matches_prefix"),model/prelude_mapping.sail:345),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:345)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:338)),model/prelude_mapping.sail:338)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:338)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:346),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:338)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:346)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:338)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:338)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:346)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:346),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:346)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:338)),model/prelude_mapping.sail:338)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex816#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex816#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex816#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:346)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:338)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:347)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:348)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:338)),model/prelude_mapping.sail:338)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:349)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:338)),model/prelude_mapping.sail:338))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_17_backwards"),model/prelude_mapping.sail:351),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:351)),model/prelude_mapping.sail:351))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:351)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:351)),model/prelude_mapping.sail:351)),model/prelude_mapping.sail:351))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_17_backwards"),model/prelude_mapping.sail:352),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:352)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:338)),model/prelude_mapping.sail:338)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_17_matches_prefix"),model/prelude_mapping.sail:353),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:353)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:338)),model/prelude_mapping.sail:338)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:338)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:354),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:354)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:338)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:354)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:338)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:338)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:354)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:354),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:354)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:338)),model/prelude_mapping.sail:338)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex822#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex822#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex822#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:354)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:338)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:338)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:338)),model/prelude_mapping.sail:338))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),model/prelude_mapping.sail:338)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_18"),model/prelude_mapping.sail:357),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:357)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:357)),model/prelude_mapping.sail:357)),model/prelude_mapping.sail:357)),model/prelude_mapping.sail:357))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_18_forwards"),model/prelude_mapping.sail:358),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:358)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:358)),model/prelude_mapping.sail:358),Effect_aux(Effect_set([]),model/prelude_mapping.sail:358)),model/prelude_mapping.sail:358)),model/prelude_mapping.sail:358))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_18_forwards_matches"),model/prelude_mapping.sail:359),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:359)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:359)),model/prelude_mapping.sail:359),Effect_aux(Effect_set([]),model/prelude_mapping.sail:359)),model/prelude_mapping.sail:359)),model/prelude_mapping.sail:359))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_18_forwards_matches"),model/prelude_mapping.sail:360),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:360)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:357)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:360)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:357)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_18_matches_prefix"),model/prelude_mapping.sail:361),[_: "hex_bits_18_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:361)),model/prelude_mapping.sail:361))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:361),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:361)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:361)),model/prelude_mapping.sail:361))]),model/prelude_mapping.sail:361)),model/prelude_mapping.sail:361))]),model/prelude_mapping.sail:361),Effect_aux(Effect_set([]),model/prelude_mapping.sail:361)),model/prelude_mapping.sail:361)),model/prelude_mapping.sail:361))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_18_backwards_matches"),model/prelude_mapping.sail:362),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:362)),model/prelude_mapping.sail:362))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:362)),model/prelude_mapping.sail:362),Effect_aux(Effect_set([]),model/prelude_mapping.sail:362)),model/prelude_mapping.sail:362)),model/prelude_mapping.sail:362))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_18_backwards_matches"),model/prelude_mapping.sail:363),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:363)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:357)),model/prelude_mapping.sail:357)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:363)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:357)),model/prelude_mapping.sail:357)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:364)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:357)),model/prelude_mapping.sail:357)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_18_matches_prefix"),model/prelude_mapping.sail:364),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:364)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:357)),model/prelude_mapping.sail:357)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:357)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:365),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:357)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:365)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:357)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:357)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:365)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:365),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:365)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:357)),model/prelude_mapping.sail:357)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex834#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex834#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex834#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:365)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:357)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:366)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:367)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:357)),model/prelude_mapping.sail:357)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:368)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:357)),model/prelude_mapping.sail:357))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_18_backwards"),model/prelude_mapping.sail:370),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:370)),model/prelude_mapping.sail:370))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:370)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:370)),model/prelude_mapping.sail:370)),model/prelude_mapping.sail:370))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_18_backwards"),model/prelude_mapping.sail:371),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:371)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:357)),model/prelude_mapping.sail:357)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_18_matches_prefix"),model/prelude_mapping.sail:372),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:372)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:357)),model/prelude_mapping.sail:357)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:357)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:373),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:373)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:357)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:373)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:357)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:357)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:373)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:373),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:373)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:357)),model/prelude_mapping.sail:357)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex840#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex840#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex840#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:373)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:357)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:357)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:357)),model/prelude_mapping.sail:357))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),model/prelude_mapping.sail:357)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_19"),model/prelude_mapping.sail:376),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:376)),model/prelude_mapping.sail:376)),model/prelude_mapping.sail:376)),model/prelude_mapping.sail:376))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_19_forwards"),model/prelude_mapping.sail:377),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:377)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:377)),model/prelude_mapping.sail:377),Effect_aux(Effect_set([]),model/prelude_mapping.sail:377)),model/prelude_mapping.sail:377)),model/prelude_mapping.sail:377))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_19_forwards_matches"),model/prelude_mapping.sail:378),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:378)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:378)),model/prelude_mapping.sail:378),Effect_aux(Effect_set([]),model/prelude_mapping.sail:378)),model/prelude_mapping.sail:378)),model/prelude_mapping.sail:378))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_19_forwards_matches"),model/prelude_mapping.sail:379),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:379)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_19_matches_prefix"),model/prelude_mapping.sail:380),[_: "hex_bits_19_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:380)),model/prelude_mapping.sail:380))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:380),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:380)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:380)),model/prelude_mapping.sail:380))]),model/prelude_mapping.sail:380)),model/prelude_mapping.sail:380))]),model/prelude_mapping.sail:380),Effect_aux(Effect_set([]),model/prelude_mapping.sail:380)),model/prelude_mapping.sail:380)),model/prelude_mapping.sail:380))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_19_backwards_matches"),model/prelude_mapping.sail:381),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:381)),model/prelude_mapping.sail:381))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:381)),model/prelude_mapping.sail:381),Effect_aux(Effect_set([]),model/prelude_mapping.sail:381)),model/prelude_mapping.sail:381)),model/prelude_mapping.sail:381))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_19_backwards_matches"),model/prelude_mapping.sail:382),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:382)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:376)),model/prelude_mapping.sail:376)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:382)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:376)),model/prelude_mapping.sail:376)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:383)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:376)),model/prelude_mapping.sail:376)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_19_matches_prefix"),model/prelude_mapping.sail:383),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:383)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:376)),model/prelude_mapping.sail:376)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:384),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:384)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:384)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:384),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:384)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:376)),model/prelude_mapping.sail:376)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex852#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex852#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex852#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:384)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:385)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:386)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:376)),model/prelude_mapping.sail:376)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:387)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:376)),model/prelude_mapping.sail:376))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_19_backwards"),model/prelude_mapping.sail:389),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:389)),model/prelude_mapping.sail:389))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:389)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:389)),model/prelude_mapping.sail:389)),model/prelude_mapping.sail:389))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_19_backwards"),model/prelude_mapping.sail:390),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:390)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:376)),model/prelude_mapping.sail:376)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_19_matches_prefix"),model/prelude_mapping.sail:391),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:391)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:376)),model/prelude_mapping.sail:376)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:392),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:392)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:392)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:392)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:392),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:392)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:376)),model/prelude_mapping.sail:376)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex858#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex858#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex858#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:392)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:376)),model/prelude_mapping.sail:376))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),model/prelude_mapping.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_20"),model/prelude_mapping.sail:395),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:395)),model/prelude_mapping.sail:395)),model/prelude_mapping.sail:395)),model/prelude_mapping.sail:395))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_20_forwards"),model/prelude_mapping.sail:396),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:396)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:396)),model/prelude_mapping.sail:396),Effect_aux(Effect_set([]),model/prelude_mapping.sail:396)),model/prelude_mapping.sail:396)),model/prelude_mapping.sail:396))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_20_forwards_matches"),model/prelude_mapping.sail:397),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:397)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:397)),model/prelude_mapping.sail:397),Effect_aux(Effect_set([]),model/prelude_mapping.sail:397)),model/prelude_mapping.sail:397)),model/prelude_mapping.sail:397))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_20_forwards_matches"),model/prelude_mapping.sail:398),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:398)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:398)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_20_matches_prefix"),model/prelude_mapping.sail:399),[_: "hex_bits_20_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:399)),model/prelude_mapping.sail:399))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:399),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:399)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:399)),model/prelude_mapping.sail:399))]),model/prelude_mapping.sail:399)),model/prelude_mapping.sail:399))]),model/prelude_mapping.sail:399),Effect_aux(Effect_set([]),model/prelude_mapping.sail:399)),model/prelude_mapping.sail:399)),model/prelude_mapping.sail:399))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_20_backwards_matches"),model/prelude_mapping.sail:400),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:400)),model/prelude_mapping.sail:400))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:400)),model/prelude_mapping.sail:400),Effect_aux(Effect_set([]),model/prelude_mapping.sail:400)),model/prelude_mapping.sail:400)),model/prelude_mapping.sail:400))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_20_backwards_matches"),model/prelude_mapping.sail:401),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:401)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:395)),model/prelude_mapping.sail:395)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:401)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:395)),model/prelude_mapping.sail:395)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:402)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:395)),model/prelude_mapping.sail:395)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_20_matches_prefix"),model/prelude_mapping.sail:402),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:402)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:395)),model/prelude_mapping.sail:395)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:403),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:403)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:403)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:403),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:403)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:395)),model/prelude_mapping.sail:395)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex870#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex870#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex870#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:403)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:404)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:405)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:395)),model/prelude_mapping.sail:395)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:406)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:395)),model/prelude_mapping.sail:395))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_20_backwards"),model/prelude_mapping.sail:408),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:408)),model/prelude_mapping.sail:408))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:408)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:408)),model/prelude_mapping.sail:408)),model/prelude_mapping.sail:408))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_20_backwards"),model/prelude_mapping.sail:409),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:409)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:395)),model/prelude_mapping.sail:395)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_20_matches_prefix"),model/prelude_mapping.sail:410),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:410)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:395)),model/prelude_mapping.sail:395)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:411),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:411)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:411)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:411)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:411),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:411)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:395)),model/prelude_mapping.sail:395)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex876#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex876#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex876#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:411)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:395)),model/prelude_mapping.sail:395))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_21"),model/prelude_mapping.sail:414),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:414)),model/prelude_mapping.sail:414)),model/prelude_mapping.sail:414)),model/prelude_mapping.sail:414))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_21_forwards"),model/prelude_mapping.sail:415),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:415)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:415)),model/prelude_mapping.sail:415),Effect_aux(Effect_set([]),model/prelude_mapping.sail:415)),model/prelude_mapping.sail:415)),model/prelude_mapping.sail:415))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_21_forwards_matches"),model/prelude_mapping.sail:416),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:416)),model/prelude_mapping.sail:416),Effect_aux(Effect_set([]),model/prelude_mapping.sail:416)),model/prelude_mapping.sail:416)),model/prelude_mapping.sail:416))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_21_forwards_matches"),model/prelude_mapping.sail:417),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:417)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:417)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_21_matches_prefix"),model/prelude_mapping.sail:418),[_: "hex_bits_21_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:418)),model/prelude_mapping.sail:418))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:418),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:418)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:418)),model/prelude_mapping.sail:418))]),model/prelude_mapping.sail:418)),model/prelude_mapping.sail:418))]),model/prelude_mapping.sail:418),Effect_aux(Effect_set([]),model/prelude_mapping.sail:418)),model/prelude_mapping.sail:418)),model/prelude_mapping.sail:418))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_21_backwards_matches"),model/prelude_mapping.sail:419),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:419)),model/prelude_mapping.sail:419))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:419)),model/prelude_mapping.sail:419),Effect_aux(Effect_set([]),model/prelude_mapping.sail:419)),model/prelude_mapping.sail:419)),model/prelude_mapping.sail:419))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_21_backwards_matches"),model/prelude_mapping.sail:420),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:420)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:414)),model/prelude_mapping.sail:414)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:420)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:414)),model/prelude_mapping.sail:414)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:421)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:414)),model/prelude_mapping.sail:414)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_21_matches_prefix"),model/prelude_mapping.sail:421),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:421)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:414)),model/prelude_mapping.sail:414)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:422),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:422)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:422)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:422),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:422)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:414)),model/prelude_mapping.sail:414)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex888#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex888#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex888#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:422)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:423)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:424)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:414)),model/prelude_mapping.sail:414)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:425)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:414)),model/prelude_mapping.sail:414))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_21_backwards"),model/prelude_mapping.sail:427),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:427)),model/prelude_mapping.sail:427))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:427)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:427)),model/prelude_mapping.sail:427)),model/prelude_mapping.sail:427))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_21_backwards"),model/prelude_mapping.sail:428),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:428)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:414)),model/prelude_mapping.sail:414)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_21_matches_prefix"),model/prelude_mapping.sail:429),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:429)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:414)),model/prelude_mapping.sail:414)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:430),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:430)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:430)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:430)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:430),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:430)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:414)),model/prelude_mapping.sail:414)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex894#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex894#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex894#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:430)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:414)),model/prelude_mapping.sail:414))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_22"),model/prelude_mapping.sail:433),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:433)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:433)),model/prelude_mapping.sail:433)),model/prelude_mapping.sail:433)),model/prelude_mapping.sail:433))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_22_forwards"),model/prelude_mapping.sail:434),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:434)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:434)),model/prelude_mapping.sail:434),Effect_aux(Effect_set([]),model/prelude_mapping.sail:434)),model/prelude_mapping.sail:434)),model/prelude_mapping.sail:434))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_22_forwards_matches"),model/prelude_mapping.sail:435),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:435)),model/prelude_mapping.sail:435),Effect_aux(Effect_set([]),model/prelude_mapping.sail:435)),model/prelude_mapping.sail:435)),model/prelude_mapping.sail:435))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_22_forwards_matches"),model/prelude_mapping.sail:436),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:436)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:433)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:436)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:433)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_22_matches_prefix"),model/prelude_mapping.sail:437),[_: "hex_bits_22_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:437)),model/prelude_mapping.sail:437))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:437),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:437)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:437)),model/prelude_mapping.sail:437))]),model/prelude_mapping.sail:437)),model/prelude_mapping.sail:437))]),model/prelude_mapping.sail:437),Effect_aux(Effect_set([]),model/prelude_mapping.sail:437)),model/prelude_mapping.sail:437)),model/prelude_mapping.sail:437))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_22_backwards_matches"),model/prelude_mapping.sail:438),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:438)),model/prelude_mapping.sail:438))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:438)),model/prelude_mapping.sail:438),Effect_aux(Effect_set([]),model/prelude_mapping.sail:438)),model/prelude_mapping.sail:438)),model/prelude_mapping.sail:438))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_22_backwards_matches"),model/prelude_mapping.sail:439),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:439)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:433)),model/prelude_mapping.sail:433)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:439)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:433)),model/prelude_mapping.sail:433)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:440)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:433)),model/prelude_mapping.sail:433)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_22_matches_prefix"),model/prelude_mapping.sail:440),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:440)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:433)),model/prelude_mapping.sail:433)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:433)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:441),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:433)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:441)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:433)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:433)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:441)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:441),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:441)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:433)),model/prelude_mapping.sail:433)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex906#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex906#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex906#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:441)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:433)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:442)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:443)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:433)),model/prelude_mapping.sail:433)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:444)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:433)),model/prelude_mapping.sail:433))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_22_backwards"),model/prelude_mapping.sail:446),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:446)),model/prelude_mapping.sail:446))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:446)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:446)),model/prelude_mapping.sail:446)),model/prelude_mapping.sail:446))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_22_backwards"),model/prelude_mapping.sail:447),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:447)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:433)),model/prelude_mapping.sail:433)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_22_matches_prefix"),model/prelude_mapping.sail:448),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:448)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:433)),model/prelude_mapping.sail:433)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:433)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:449),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:449)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:433)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:449)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:433)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:433)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:449)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:449),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:449)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:433)),model/prelude_mapping.sail:433)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex912#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex912#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex912#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:449)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:433)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:433)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:433)),model/prelude_mapping.sail:433))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),model/prelude_mapping.sail:433)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_23"),model/prelude_mapping.sail:452),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:452)),model/prelude_mapping.sail:452)),model/prelude_mapping.sail:452)),model/prelude_mapping.sail:452))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_23_forwards"),model/prelude_mapping.sail:453),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:453)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:453)),model/prelude_mapping.sail:453),Effect_aux(Effect_set([]),model/prelude_mapping.sail:453)),model/prelude_mapping.sail:453)),model/prelude_mapping.sail:453))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_23_forwards_matches"),model/prelude_mapping.sail:454),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:454)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:454)),model/prelude_mapping.sail:454),Effect_aux(Effect_set([]),model/prelude_mapping.sail:454)),model/prelude_mapping.sail:454)),model/prelude_mapping.sail:454))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_23_forwards_matches"),model/prelude_mapping.sail:455),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:455)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:455)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_23_matches_prefix"),model/prelude_mapping.sail:456),[_: "hex_bits_23_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:456)),model/prelude_mapping.sail:456))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:456),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:456)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:456)),model/prelude_mapping.sail:456))]),model/prelude_mapping.sail:456)),model/prelude_mapping.sail:456))]),model/prelude_mapping.sail:456),Effect_aux(Effect_set([]),model/prelude_mapping.sail:456)),model/prelude_mapping.sail:456)),model/prelude_mapping.sail:456))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_23_backwards_matches"),model/prelude_mapping.sail:457),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:457)),model/prelude_mapping.sail:457))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:457)),model/prelude_mapping.sail:457),Effect_aux(Effect_set([]),model/prelude_mapping.sail:457)),model/prelude_mapping.sail:457)),model/prelude_mapping.sail:457))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_23_backwards_matches"),model/prelude_mapping.sail:458),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:458)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:452)),model/prelude_mapping.sail:452)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:458)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:452)),model/prelude_mapping.sail:452)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:459)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:452)),model/prelude_mapping.sail:452)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_23_matches_prefix"),model/prelude_mapping.sail:459),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:459)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:452)),model/prelude_mapping.sail:452)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:460),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:460)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:460)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:460),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:460)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:452)),model/prelude_mapping.sail:452)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex924#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex924#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex924#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:460)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:461)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:462)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:452)),model/prelude_mapping.sail:452)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:463)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:452)),model/prelude_mapping.sail:452))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_23_backwards"),model/prelude_mapping.sail:465),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:465)),model/prelude_mapping.sail:465))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:465)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:465)),model/prelude_mapping.sail:465)),model/prelude_mapping.sail:465))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_23_backwards"),model/prelude_mapping.sail:466),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:466)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:452)),model/prelude_mapping.sail:452)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_23_matches_prefix"),model/prelude_mapping.sail:467),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:467)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:452)),model/prelude_mapping.sail:452)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:468),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:468)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:468)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:468)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:468),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:468)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:452)),model/prelude_mapping.sail:452)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex930#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex930#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex930#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:468)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:452)),model/prelude_mapping.sail:452))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),model/prelude_mapping.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_24"),model/prelude_mapping.sail:471),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:471)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:471)),model/prelude_mapping.sail:471)),model/prelude_mapping.sail:471)),model/prelude_mapping.sail:471))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_24_forwards"),model/prelude_mapping.sail:472),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:472)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:472)),model/prelude_mapping.sail:472),Effect_aux(Effect_set([]),model/prelude_mapping.sail:472)),model/prelude_mapping.sail:472)),model/prelude_mapping.sail:472))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_24_forwards_matches"),model/prelude_mapping.sail:473),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:473)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:473)),model/prelude_mapping.sail:473),Effect_aux(Effect_set([]),model/prelude_mapping.sail:473)),model/prelude_mapping.sail:473)),model/prelude_mapping.sail:473))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_24_forwards_matches"),model/prelude_mapping.sail:474),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:474)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:471)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:474)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:471)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_24_matches_prefix"),model/prelude_mapping.sail:475),[_: "hex_bits_24_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:475)),model/prelude_mapping.sail:475))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:475),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:475)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:475)),model/prelude_mapping.sail:475))]),model/prelude_mapping.sail:475)),model/prelude_mapping.sail:475))]),model/prelude_mapping.sail:475),Effect_aux(Effect_set([]),model/prelude_mapping.sail:475)),model/prelude_mapping.sail:475)),model/prelude_mapping.sail:475))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_24_backwards_matches"),model/prelude_mapping.sail:476),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:476)),model/prelude_mapping.sail:476))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:476)),model/prelude_mapping.sail:476),Effect_aux(Effect_set([]),model/prelude_mapping.sail:476)),model/prelude_mapping.sail:476)),model/prelude_mapping.sail:476))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_24_backwards_matches"),model/prelude_mapping.sail:477),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:477)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:471)),model/prelude_mapping.sail:471)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:477)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:471)),model/prelude_mapping.sail:471)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:478)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:471)),model/prelude_mapping.sail:471)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_24_matches_prefix"),model/prelude_mapping.sail:478),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:478)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:471)),model/prelude_mapping.sail:471)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:471)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:479),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:471)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:479)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:471)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:471)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:479)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:479),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:479)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:471)),model/prelude_mapping.sail:471)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex942#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex942#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex942#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:479)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:471)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:480)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:481)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:471)),model/prelude_mapping.sail:471)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:482)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:471)),model/prelude_mapping.sail:471))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_24_backwards"),model/prelude_mapping.sail:484),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:484)),model/prelude_mapping.sail:484))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:484)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:484)),model/prelude_mapping.sail:484)),model/prelude_mapping.sail:484))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_24_backwards"),model/prelude_mapping.sail:485),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:485)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:471)),model/prelude_mapping.sail:471)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_24_matches_prefix"),model/prelude_mapping.sail:486),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:486)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:471)),model/prelude_mapping.sail:471)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:471)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:487),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:487)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:471)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:487)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:471)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:471)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:487)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:487),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:487)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:471)),model/prelude_mapping.sail:471)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex948#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex948#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex948#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:487)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:471)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:471)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:471)),model/prelude_mapping.sail:471))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),model/prelude_mapping.sail:471)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_25"),model/prelude_mapping.sail:490),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:490)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:490)),model/prelude_mapping.sail:490)),model/prelude_mapping.sail:490)),model/prelude_mapping.sail:490))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_25_forwards"),model/prelude_mapping.sail:491),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:491)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:491)),model/prelude_mapping.sail:491),Effect_aux(Effect_set([]),model/prelude_mapping.sail:491)),model/prelude_mapping.sail:491)),model/prelude_mapping.sail:491))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_25_forwards_matches"),model/prelude_mapping.sail:492),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:492)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:492)),model/prelude_mapping.sail:492),Effect_aux(Effect_set([]),model/prelude_mapping.sail:492)),model/prelude_mapping.sail:492)),model/prelude_mapping.sail:492))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_25_forwards_matches"),model/prelude_mapping.sail:493),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:493)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:490)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:493)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:490)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_25_matches_prefix"),model/prelude_mapping.sail:494),[_: "hex_bits_25_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:494)),model/prelude_mapping.sail:494))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:494),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:494)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:494)),model/prelude_mapping.sail:494))]),model/prelude_mapping.sail:494)),model/prelude_mapping.sail:494))]),model/prelude_mapping.sail:494),Effect_aux(Effect_set([]),model/prelude_mapping.sail:494)),model/prelude_mapping.sail:494)),model/prelude_mapping.sail:494))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_25_backwards_matches"),model/prelude_mapping.sail:495),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:495)),model/prelude_mapping.sail:495))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:495)),model/prelude_mapping.sail:495),Effect_aux(Effect_set([]),model/prelude_mapping.sail:495)),model/prelude_mapping.sail:495)),model/prelude_mapping.sail:495))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_25_backwards_matches"),model/prelude_mapping.sail:496),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:496)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:490)),model/prelude_mapping.sail:490)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:496)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:490)),model/prelude_mapping.sail:490)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:497)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:490)),model/prelude_mapping.sail:490)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_25_matches_prefix"),model/prelude_mapping.sail:497),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:497)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:490)),model/prelude_mapping.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:490)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:498),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:490)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:498)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:490)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:490)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:498)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:498),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:498)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:490)),model/prelude_mapping.sail:490)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex960#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex960#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex960#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:498)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:490)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:499)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:500)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:490)),model/prelude_mapping.sail:490)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:501)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:490)),model/prelude_mapping.sail:490))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_25_backwards"),model/prelude_mapping.sail:503),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:503)),model/prelude_mapping.sail:503))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:503)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:503)),model/prelude_mapping.sail:503)),model/prelude_mapping.sail:503))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_25_backwards"),model/prelude_mapping.sail:504),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:504)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:490)),model/prelude_mapping.sail:490)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_25_matches_prefix"),model/prelude_mapping.sail:505),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:505)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:490)),model/prelude_mapping.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:490)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:506),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:506)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:490)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:506)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:490)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:490)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:506)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:506),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:506)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:490)),model/prelude_mapping.sail:490)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex966#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex966#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex966#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:506)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:490)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:490)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:490)),model/prelude_mapping.sail:490))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),model/prelude_mapping.sail:490)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_26"),model/prelude_mapping.sail:509),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:509)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:509)),model/prelude_mapping.sail:509)),model/prelude_mapping.sail:509)),model/prelude_mapping.sail:509))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_26_forwards"),model/prelude_mapping.sail:510),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:510)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:510)),model/prelude_mapping.sail:510),Effect_aux(Effect_set([]),model/prelude_mapping.sail:510)),model/prelude_mapping.sail:510)),model/prelude_mapping.sail:510))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_26_forwards_matches"),model/prelude_mapping.sail:511),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:511)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:511)),model/prelude_mapping.sail:511),Effect_aux(Effect_set([]),model/prelude_mapping.sail:511)),model/prelude_mapping.sail:511)),model/prelude_mapping.sail:511))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_26_forwards_matches"),model/prelude_mapping.sail:512),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:512)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:509)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:512)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:509)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_26_matches_prefix"),model/prelude_mapping.sail:513),[_: "hex_bits_26_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:513)),model/prelude_mapping.sail:513))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:513),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:513)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:513)),model/prelude_mapping.sail:513))]),model/prelude_mapping.sail:513)),model/prelude_mapping.sail:513))]),model/prelude_mapping.sail:513),Effect_aux(Effect_set([]),model/prelude_mapping.sail:513)),model/prelude_mapping.sail:513)),model/prelude_mapping.sail:513))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_26_backwards_matches"),model/prelude_mapping.sail:514),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:514)),model/prelude_mapping.sail:514))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:514)),model/prelude_mapping.sail:514),Effect_aux(Effect_set([]),model/prelude_mapping.sail:514)),model/prelude_mapping.sail:514)),model/prelude_mapping.sail:514))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_26_backwards_matches"),model/prelude_mapping.sail:515),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:515)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:509)),model/prelude_mapping.sail:509)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:515)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:509)),model/prelude_mapping.sail:509)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:516)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:509)),model/prelude_mapping.sail:509)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_26_matches_prefix"),model/prelude_mapping.sail:516),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:516)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:509)),model/prelude_mapping.sail:509)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:509)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:517),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:509)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:517)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:509)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:509)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:517)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:517),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:517)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:509)),model/prelude_mapping.sail:509)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex978#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex978#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex978#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:517)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:509)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:518)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:519)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:509)),model/prelude_mapping.sail:509)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:520)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:509)),model/prelude_mapping.sail:509))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_26_backwards"),model/prelude_mapping.sail:522),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:522)),model/prelude_mapping.sail:522))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:522)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:522)),model/prelude_mapping.sail:522)),model/prelude_mapping.sail:522))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_26_backwards"),model/prelude_mapping.sail:523),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:523)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:509)),model/prelude_mapping.sail:509)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_26_matches_prefix"),model/prelude_mapping.sail:524),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:524)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:509)),model/prelude_mapping.sail:509)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:509)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:525),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:525)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:509)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:525)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:509)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:509)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:525)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:525),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:525)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:509)),model/prelude_mapping.sail:509)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex984#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex984#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex984#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:525)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:509)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:509)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:509)),model/prelude_mapping.sail:509))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),model/prelude_mapping.sail:509)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_27"),model/prelude_mapping.sail:528),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:528)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:528)),model/prelude_mapping.sail:528)),model/prelude_mapping.sail:528)),model/prelude_mapping.sail:528))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_27_forwards"),model/prelude_mapping.sail:529),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:529)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:529)),model/prelude_mapping.sail:529),Effect_aux(Effect_set([]),model/prelude_mapping.sail:529)),model/prelude_mapping.sail:529)),model/prelude_mapping.sail:529))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_27_forwards_matches"),model/prelude_mapping.sail:530),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:530)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:530)),model/prelude_mapping.sail:530),Effect_aux(Effect_set([]),model/prelude_mapping.sail:530)),model/prelude_mapping.sail:530)),model/prelude_mapping.sail:530))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_27_forwards_matches"),model/prelude_mapping.sail:531),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:531)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:528)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:531)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:528)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_27_matches_prefix"),model/prelude_mapping.sail:532),[_: "hex_bits_27_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:532)),model/prelude_mapping.sail:532))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:532),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:532)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:532)),model/prelude_mapping.sail:532))]),model/prelude_mapping.sail:532)),model/prelude_mapping.sail:532))]),model/prelude_mapping.sail:532),Effect_aux(Effect_set([]),model/prelude_mapping.sail:532)),model/prelude_mapping.sail:532)),model/prelude_mapping.sail:532))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_27_backwards_matches"),model/prelude_mapping.sail:533),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:533)),model/prelude_mapping.sail:533))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:533)),model/prelude_mapping.sail:533),Effect_aux(Effect_set([]),model/prelude_mapping.sail:533)),model/prelude_mapping.sail:533)),model/prelude_mapping.sail:533))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_27_backwards_matches"),model/prelude_mapping.sail:534),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:534)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:528)),model/prelude_mapping.sail:528)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:534)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:528)),model/prelude_mapping.sail:528)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:535)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:528)),model/prelude_mapping.sail:528)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_27_matches_prefix"),model/prelude_mapping.sail:535),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:535)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:528)),model/prelude_mapping.sail:528)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:528)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:536),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:528)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:536)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:528)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:528)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:536)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:536),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:536)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:528)),model/prelude_mapping.sail:528)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex996#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex996#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex996#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:536)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:528)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:537)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:538)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:528)),model/prelude_mapping.sail:528)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:539)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:528)),model/prelude_mapping.sail:528))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_27_backwards"),model/prelude_mapping.sail:541),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:541)),model/prelude_mapping.sail:541))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:541)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:541)),model/prelude_mapping.sail:541)),model/prelude_mapping.sail:541))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_27_backwards"),model/prelude_mapping.sail:542),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:542)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:528)),model/prelude_mapping.sail:528)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_27_matches_prefix"),model/prelude_mapping.sail:543),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:543)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:528)),model/prelude_mapping.sail:528)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:528)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:544),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:544)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:528)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:544)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:528)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:528)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:544)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:544),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:544)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:528)),model/prelude_mapping.sail:528)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1002#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1002#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1002#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:544)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:528)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:528)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:528)),model/prelude_mapping.sail:528))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),model/prelude_mapping.sail:528)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_28"),model/prelude_mapping.sail:547),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:547)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:547)),model/prelude_mapping.sail:547)),model/prelude_mapping.sail:547)),model/prelude_mapping.sail:547))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_28_forwards"),model/prelude_mapping.sail:548),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:548)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:548)),model/prelude_mapping.sail:548),Effect_aux(Effect_set([]),model/prelude_mapping.sail:548)),model/prelude_mapping.sail:548)),model/prelude_mapping.sail:548))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_28_forwards_matches"),model/prelude_mapping.sail:549),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:549)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:549)),model/prelude_mapping.sail:549),Effect_aux(Effect_set([]),model/prelude_mapping.sail:549)),model/prelude_mapping.sail:549)),model/prelude_mapping.sail:549))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_28_forwards_matches"),model/prelude_mapping.sail:550),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:550)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:547)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:550)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:547)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_28_matches_prefix"),model/prelude_mapping.sail:551),[_: "hex_bits_28_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:551)),model/prelude_mapping.sail:551))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:551),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:551)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:551)),model/prelude_mapping.sail:551))]),model/prelude_mapping.sail:551)),model/prelude_mapping.sail:551))]),model/prelude_mapping.sail:551),Effect_aux(Effect_set([]),model/prelude_mapping.sail:551)),model/prelude_mapping.sail:551)),model/prelude_mapping.sail:551))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_28_backwards_matches"),model/prelude_mapping.sail:552),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:552)),model/prelude_mapping.sail:552))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:552)),model/prelude_mapping.sail:552),Effect_aux(Effect_set([]),model/prelude_mapping.sail:552)),model/prelude_mapping.sail:552)),model/prelude_mapping.sail:552))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_28_backwards_matches"),model/prelude_mapping.sail:553),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:553)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:547)),model/prelude_mapping.sail:547)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:553)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:547)),model/prelude_mapping.sail:547)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:554)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:547)),model/prelude_mapping.sail:547)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_28_matches_prefix"),model/prelude_mapping.sail:554),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:554)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:547)),model/prelude_mapping.sail:547)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:547)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:555),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:547)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:555)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:547)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:547)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:555)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:555),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:555)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:547)),model/prelude_mapping.sail:547)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1014#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1014#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1014#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:555)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:547)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:556)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:557)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:547)),model/prelude_mapping.sail:547)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:558)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:547)),model/prelude_mapping.sail:547))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_28_backwards"),model/prelude_mapping.sail:560),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:560)),model/prelude_mapping.sail:560))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:560)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:560)),model/prelude_mapping.sail:560)),model/prelude_mapping.sail:560))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_28_backwards"),model/prelude_mapping.sail:561),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:561)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:547)),model/prelude_mapping.sail:547)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_28_matches_prefix"),model/prelude_mapping.sail:562),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:562)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:547)),model/prelude_mapping.sail:547)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:547)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:563),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:563)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:547)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:563)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:547)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:547)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:563)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:563),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:563)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:547)),model/prelude_mapping.sail:547)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1020#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1020#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1020#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:563)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:547)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:547)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:547)),model/prelude_mapping.sail:547))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),model/prelude_mapping.sail:547)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_29"),model/prelude_mapping.sail:566),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:566)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:566)),model/prelude_mapping.sail:566)),model/prelude_mapping.sail:566)),model/prelude_mapping.sail:566))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_29_forwards"),model/prelude_mapping.sail:567),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:567)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:567)),model/prelude_mapping.sail:567),Effect_aux(Effect_set([]),model/prelude_mapping.sail:567)),model/prelude_mapping.sail:567)),model/prelude_mapping.sail:567))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_29_forwards_matches"),model/prelude_mapping.sail:568),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:568)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:568)),model/prelude_mapping.sail:568),Effect_aux(Effect_set([]),model/prelude_mapping.sail:568)),model/prelude_mapping.sail:568)),model/prelude_mapping.sail:568))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_29_forwards_matches"),model/prelude_mapping.sail:569),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:569)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:566)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:569)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:566)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_29_matches_prefix"),model/prelude_mapping.sail:570),[_: "hex_bits_29_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:570)),model/prelude_mapping.sail:570))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:570),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:570)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:570)),model/prelude_mapping.sail:570))]),model/prelude_mapping.sail:570)),model/prelude_mapping.sail:570))]),model/prelude_mapping.sail:570),Effect_aux(Effect_set([]),model/prelude_mapping.sail:570)),model/prelude_mapping.sail:570)),model/prelude_mapping.sail:570))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_29_backwards_matches"),model/prelude_mapping.sail:571),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:571)),model/prelude_mapping.sail:571))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:571)),model/prelude_mapping.sail:571),Effect_aux(Effect_set([]),model/prelude_mapping.sail:571)),model/prelude_mapping.sail:571)),model/prelude_mapping.sail:571))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_29_backwards_matches"),model/prelude_mapping.sail:572),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:572)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:566)),model/prelude_mapping.sail:566)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:572)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:566)),model/prelude_mapping.sail:566)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:573)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:566)),model/prelude_mapping.sail:566)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_29_matches_prefix"),model/prelude_mapping.sail:573),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:573)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:566)),model/prelude_mapping.sail:566)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:566)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:574),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:566)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:574)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:566)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:566)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:574)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:574),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:574)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:566)),model/prelude_mapping.sail:566)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1032#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1032#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1032#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:574)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:566)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:575)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:576)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:566)),model/prelude_mapping.sail:566)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:577)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:566)),model/prelude_mapping.sail:566))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_29_backwards"),model/prelude_mapping.sail:579),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:579)),model/prelude_mapping.sail:579))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:579)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:579)),model/prelude_mapping.sail:579)),model/prelude_mapping.sail:579))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_29_backwards"),model/prelude_mapping.sail:580),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:580)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:566)),model/prelude_mapping.sail:566)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_29_matches_prefix"),model/prelude_mapping.sail:581),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:581)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:566)),model/prelude_mapping.sail:566)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:566)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:582),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:582)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:566)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:582)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:566)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:566)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:582)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:582),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:582)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:566)),model/prelude_mapping.sail:566)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1038#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1038#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1038#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:582)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:566)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:566)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:566)),model/prelude_mapping.sail:566))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),model/prelude_mapping.sail:566)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_30"),model/prelude_mapping.sail:585),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:585)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:585)),model/prelude_mapping.sail:585)),model/prelude_mapping.sail:585)),model/prelude_mapping.sail:585))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_30_forwards"),model/prelude_mapping.sail:586),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:586)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:586)),model/prelude_mapping.sail:586),Effect_aux(Effect_set([]),model/prelude_mapping.sail:586)),model/prelude_mapping.sail:586)),model/prelude_mapping.sail:586))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_30_forwards_matches"),model/prelude_mapping.sail:587),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:587)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:587)),model/prelude_mapping.sail:587),Effect_aux(Effect_set([]),model/prelude_mapping.sail:587)),model/prelude_mapping.sail:587)),model/prelude_mapping.sail:587))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_30_forwards_matches"),model/prelude_mapping.sail:588),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:588)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:585)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:588)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:585)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_30_matches_prefix"),model/prelude_mapping.sail:589),[_: "hex_bits_30_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:589)),model/prelude_mapping.sail:589))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:589),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:589)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:589)),model/prelude_mapping.sail:589))]),model/prelude_mapping.sail:589)),model/prelude_mapping.sail:589))]),model/prelude_mapping.sail:589),Effect_aux(Effect_set([]),model/prelude_mapping.sail:589)),model/prelude_mapping.sail:589)),model/prelude_mapping.sail:589))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_30_backwards_matches"),model/prelude_mapping.sail:590),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:590)),model/prelude_mapping.sail:590))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:590)),model/prelude_mapping.sail:590),Effect_aux(Effect_set([]),model/prelude_mapping.sail:590)),model/prelude_mapping.sail:590)),model/prelude_mapping.sail:590))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_30_backwards_matches"),model/prelude_mapping.sail:591),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:591)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:585)),model/prelude_mapping.sail:585)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:591)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:585)),model/prelude_mapping.sail:585)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:592)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:585)),model/prelude_mapping.sail:585)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_30_matches_prefix"),model/prelude_mapping.sail:592),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:592)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:585)),model/prelude_mapping.sail:585)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:585)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:593),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:585)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:593)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:585)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:585)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:593)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:593),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:593)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:585)),model/prelude_mapping.sail:585)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1050#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1050#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1050#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:593)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:585)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:594)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:595)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:585)),model/prelude_mapping.sail:585)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:596)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:585)),model/prelude_mapping.sail:585))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_30_backwards"),model/prelude_mapping.sail:598),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:598)),model/prelude_mapping.sail:598))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:598)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:598)),model/prelude_mapping.sail:598)),model/prelude_mapping.sail:598))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_30_backwards"),model/prelude_mapping.sail:599),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:599)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:585)),model/prelude_mapping.sail:585)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_30_matches_prefix"),model/prelude_mapping.sail:600),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:600)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:585)),model/prelude_mapping.sail:585)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:585)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:601),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:601)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:585)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:601)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:585)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:585)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:601)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:601),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:601)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:585)),model/prelude_mapping.sail:585)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1056#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1056#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1056#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:601)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:585)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:585)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:585)),model/prelude_mapping.sail:585))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),model/prelude_mapping.sail:585)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_31"),model/prelude_mapping.sail:604),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:604)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:604)),model/prelude_mapping.sail:604)),model/prelude_mapping.sail:604)),model/prelude_mapping.sail:604))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_31_forwards"),model/prelude_mapping.sail:605),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:605)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:605)),model/prelude_mapping.sail:605),Effect_aux(Effect_set([]),model/prelude_mapping.sail:605)),model/prelude_mapping.sail:605)),model/prelude_mapping.sail:605))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_31_forwards_matches"),model/prelude_mapping.sail:606),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:606)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:606)),model/prelude_mapping.sail:606),Effect_aux(Effect_set([]),model/prelude_mapping.sail:606)),model/prelude_mapping.sail:606)),model/prelude_mapping.sail:606))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_31_forwards_matches"),model/prelude_mapping.sail:607),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:607)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:604)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:607)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:604)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_31_matches_prefix"),model/prelude_mapping.sail:608),[_: "hex_bits_31_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:608)),model/prelude_mapping.sail:608))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:608),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:608)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:608)),model/prelude_mapping.sail:608))]),model/prelude_mapping.sail:608)),model/prelude_mapping.sail:608))]),model/prelude_mapping.sail:608),Effect_aux(Effect_set([]),model/prelude_mapping.sail:608)),model/prelude_mapping.sail:608)),model/prelude_mapping.sail:608))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_31_backwards_matches"),model/prelude_mapping.sail:609),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:609)),model/prelude_mapping.sail:609))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:609)),model/prelude_mapping.sail:609),Effect_aux(Effect_set([]),model/prelude_mapping.sail:609)),model/prelude_mapping.sail:609)),model/prelude_mapping.sail:609))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_31_backwards_matches"),model/prelude_mapping.sail:610),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:610)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:604)),model/prelude_mapping.sail:604)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:610)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:604)),model/prelude_mapping.sail:604)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:611)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:604)),model/prelude_mapping.sail:604)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_31_matches_prefix"),model/prelude_mapping.sail:611),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:611)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:604)),model/prelude_mapping.sail:604)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:604)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:612),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:604)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:612)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:604)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:604)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:612)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:612),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:612)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:604)),model/prelude_mapping.sail:604)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1068#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1068#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1068#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:612)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:604)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:613)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:614)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:604)),model/prelude_mapping.sail:604)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:615)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:604)),model/prelude_mapping.sail:604))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_31_backwards"),model/prelude_mapping.sail:617),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:617)),model/prelude_mapping.sail:617))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:617)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:617)),model/prelude_mapping.sail:617)),model/prelude_mapping.sail:617))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_31_backwards"),model/prelude_mapping.sail:618),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:618)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:604)),model/prelude_mapping.sail:604)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_31_matches_prefix"),model/prelude_mapping.sail:619),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:619)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:604)),model/prelude_mapping.sail:604)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:604)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:620),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:620)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:604)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:620)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:604)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:604)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:620)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:620),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:620)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:604)),model/prelude_mapping.sail:604)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1074#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1074#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1074#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:620)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:604)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:604)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:604)),model/prelude_mapping.sail:604))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),model/prelude_mapping.sail:604)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_32"),model/prelude_mapping.sail:623),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:623)),model/prelude_mapping.sail:623)),model/prelude_mapping.sail:623)),model/prelude_mapping.sail:623))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_32_forwards"),model/prelude_mapping.sail:624),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:624)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:624)),model/prelude_mapping.sail:624),Effect_aux(Effect_set([]),model/prelude_mapping.sail:624)),model/prelude_mapping.sail:624)),model/prelude_mapping.sail:624))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_32_forwards_matches"),model/prelude_mapping.sail:625),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:625)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:625)),model/prelude_mapping.sail:625),Effect_aux(Effect_set([]),model/prelude_mapping.sail:625)),model/prelude_mapping.sail:625)),model/prelude_mapping.sail:625))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_32_forwards_matches"),model/prelude_mapping.sail:626),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:626)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:626)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_32_matches_prefix"),model/prelude_mapping.sail:627),[_: "hex_bits_32_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:627)),model/prelude_mapping.sail:627))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:627),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:627)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:627)),model/prelude_mapping.sail:627))]),model/prelude_mapping.sail:627)),model/prelude_mapping.sail:627))]),model/prelude_mapping.sail:627),Effect_aux(Effect_set([]),model/prelude_mapping.sail:627)),model/prelude_mapping.sail:627)),model/prelude_mapping.sail:627))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_32_backwards_matches"),model/prelude_mapping.sail:628),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:628)),model/prelude_mapping.sail:628))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:628)),model/prelude_mapping.sail:628),Effect_aux(Effect_set([]),model/prelude_mapping.sail:628)),model/prelude_mapping.sail:628)),model/prelude_mapping.sail:628))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_32_backwards_matches"),model/prelude_mapping.sail:629),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:629)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:623)),model/prelude_mapping.sail:623)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:629)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:623)),model/prelude_mapping.sail:623)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:630)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:623)),model/prelude_mapping.sail:623)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_32_matches_prefix"),model/prelude_mapping.sail:630),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:630)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:623)),model/prelude_mapping.sail:623)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:631),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:631)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:631)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:631),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:631)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:623)),model/prelude_mapping.sail:623)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1086#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1086#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1086#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:631)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:632)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:633)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:623)),model/prelude_mapping.sail:623)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:634)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:623)),model/prelude_mapping.sail:623))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_32_backwards"),model/prelude_mapping.sail:636),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:636)),model/prelude_mapping.sail:636))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:636)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:636)),model/prelude_mapping.sail:636)),model/prelude_mapping.sail:636))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_32_backwards"),model/prelude_mapping.sail:637),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:637)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:623)),model/prelude_mapping.sail:623)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_32_matches_prefix"),model/prelude_mapping.sail:638),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:638)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:623)),model/prelude_mapping.sail:623)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:639),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:639)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:639)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:639)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:639),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:639)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:623)),model/prelude_mapping.sail:623)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1092#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1092#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1092#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:639)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:623)),model/prelude_mapping.sail:623))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_33"),model/prelude_mapping.sail:642),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:642)),model/prelude_mapping.sail:642)),model/prelude_mapping.sail:642)),model/prelude_mapping.sail:642))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_33_forwards"),model/prelude_mapping.sail:643),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:643)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:643)),model/prelude_mapping.sail:643),Effect_aux(Effect_set([]),model/prelude_mapping.sail:643)),model/prelude_mapping.sail:643)),model/prelude_mapping.sail:643))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_33_forwards_matches"),model/prelude_mapping.sail:644),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:644)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:644)),model/prelude_mapping.sail:644),Effect_aux(Effect_set([]),model/prelude_mapping.sail:644)),model/prelude_mapping.sail:644)),model/prelude_mapping.sail:644))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_33_forwards_matches"),model/prelude_mapping.sail:645),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:645)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:645)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_33_matches_prefix"),model/prelude_mapping.sail:646),[_: "hex_bits_33_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:646)),model/prelude_mapping.sail:646))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:646),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:646)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:646)),model/prelude_mapping.sail:646))]),model/prelude_mapping.sail:646)),model/prelude_mapping.sail:646))]),model/prelude_mapping.sail:646),Effect_aux(Effect_set([]),model/prelude_mapping.sail:646)),model/prelude_mapping.sail:646)),model/prelude_mapping.sail:646))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_33_backwards_matches"),model/prelude_mapping.sail:647),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:647)),model/prelude_mapping.sail:647))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:647)),model/prelude_mapping.sail:647),Effect_aux(Effect_set([]),model/prelude_mapping.sail:647)),model/prelude_mapping.sail:647)),model/prelude_mapping.sail:647))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_33_backwards_matches"),model/prelude_mapping.sail:648),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:648)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:642)),model/prelude_mapping.sail:642)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:648)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:642)),model/prelude_mapping.sail:642)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:649)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:642)),model/prelude_mapping.sail:642)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_33_matches_prefix"),model/prelude_mapping.sail:649),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:649)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:642)),model/prelude_mapping.sail:642)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:650),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:650)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:650)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:650),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:650)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:642)),model/prelude_mapping.sail:642)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1104#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1104#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1104#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:650)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:651)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:652)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:642)),model/prelude_mapping.sail:642)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:653)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:642)),model/prelude_mapping.sail:642))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_33_backwards"),model/prelude_mapping.sail:655),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:655)),model/prelude_mapping.sail:655))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:655)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:655)),model/prelude_mapping.sail:655)),model/prelude_mapping.sail:655))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_33_backwards"),model/prelude_mapping.sail:656),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:656)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:642)),model/prelude_mapping.sail:642)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_33_matches_prefix"),model/prelude_mapping.sail:657),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:657)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:642)),model/prelude_mapping.sail:642)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:658),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:658)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:658)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:658)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:658),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:658)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:642)),model/prelude_mapping.sail:642)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1110#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1110#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1110#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:658)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:642)),model/prelude_mapping.sail:642))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),model/prelude_mapping.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_48"),model/prelude_mapping.sail:661),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:661)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:661)),model/prelude_mapping.sail:661)),model/prelude_mapping.sail:661)),model/prelude_mapping.sail:661))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_48_forwards"),model/prelude_mapping.sail:662),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:662)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:662)),model/prelude_mapping.sail:662),Effect_aux(Effect_set([]),model/prelude_mapping.sail:662)),model/prelude_mapping.sail:662)),model/prelude_mapping.sail:662))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_48_forwards_matches"),model/prelude_mapping.sail:663),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:663)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:663)),model/prelude_mapping.sail:663),Effect_aux(Effect_set([]),model/prelude_mapping.sail:663)),model/prelude_mapping.sail:663)),model/prelude_mapping.sail:663))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_48_forwards_matches"),model/prelude_mapping.sail:664),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:664)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:661)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:664)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:661)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_48_matches_prefix"),model/prelude_mapping.sail:665),[_: "hex_bits_48_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:665)),model/prelude_mapping.sail:665))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:665),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:665)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:665)),model/prelude_mapping.sail:665))]),model/prelude_mapping.sail:665)),model/prelude_mapping.sail:665))]),model/prelude_mapping.sail:665),Effect_aux(Effect_set([]),model/prelude_mapping.sail:665)),model/prelude_mapping.sail:665)),model/prelude_mapping.sail:665))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_48_backwards_matches"),model/prelude_mapping.sail:666),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:666)),model/prelude_mapping.sail:666))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:666)),model/prelude_mapping.sail:666),Effect_aux(Effect_set([]),model/prelude_mapping.sail:666)),model/prelude_mapping.sail:666)),model/prelude_mapping.sail:666))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_48_backwards_matches"),model/prelude_mapping.sail:667),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:667)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:661)),model/prelude_mapping.sail:661)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:667)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:661)),model/prelude_mapping.sail:661)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:668)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:661)),model/prelude_mapping.sail:661)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_48_matches_prefix"),model/prelude_mapping.sail:668),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:668)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:661)),model/prelude_mapping.sail:661)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:661)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:669),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:661)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:669)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:661)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:661)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:669)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:669),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:669)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:661)),model/prelude_mapping.sail:661)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1122#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1122#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1122#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:669)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:661)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:670)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:671)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:661)),model/prelude_mapping.sail:661)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:672)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:661)),model/prelude_mapping.sail:661))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_48_backwards"),model/prelude_mapping.sail:674),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:674)),model/prelude_mapping.sail:674))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:674)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:674)),model/prelude_mapping.sail:674)),model/prelude_mapping.sail:674))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_48_backwards"),model/prelude_mapping.sail:675),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:675)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:661)),model/prelude_mapping.sail:661)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_48_matches_prefix"),model/prelude_mapping.sail:676),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:676)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:661)),model/prelude_mapping.sail:661)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:661)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:677),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:677)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:661)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:677)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:661)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:661)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:677)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:677),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:677)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:661)),model/prelude_mapping.sail:661)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1128#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1128#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1128#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:677)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:661)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:661)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:661)),model/prelude_mapping.sail:661))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/prelude_mapping.sail:661)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_64"),model/prelude_mapping.sail:680),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:680)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:680)),model/prelude_mapping.sail:680)),model/prelude_mapping.sail:680)),model/prelude_mapping.sail:680))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_64_forwards"),model/prelude_mapping.sail:681),[_: "decimal_string_of_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:681)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:681)),model/prelude_mapping.sail:681),Effect_aux(Effect_set([]),model/prelude_mapping.sail:681)),model/prelude_mapping.sail:681)),model/prelude_mapping.sail:681))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_64_forwards_matches"),model/prelude_mapping.sail:682),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:682)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:682)),model/prelude_mapping.sail:682),Effect_aux(Effect_set([]),model/prelude_mapping.sail:682)),model/prelude_mapping.sail:682)),model/prelude_mapping.sail:682))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_64_forwards_matches"),model/prelude_mapping.sail:683),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:683)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:680)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:683)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:680)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_64_matches_prefix"),model/prelude_mapping.sail:684),[_: "hex_bits_64_matches_prefix"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:684)),model/prelude_mapping.sail:684))],Typ_aux(Typ_app(Id_aux(Id("option"),model/prelude_mapping.sail:684),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:684)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude_mapping.sail:684)),model/prelude_mapping.sail:684))]),model/prelude_mapping.sail:684)),model/prelude_mapping.sail:684))]),model/prelude_mapping.sail:684),Effect_aux(Effect_set([]),model/prelude_mapping.sail:684)),model/prelude_mapping.sail:684)),model/prelude_mapping.sail:684))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_64_backwards_matches"),model/prelude_mapping.sail:685),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:685)),model/prelude_mapping.sail:685))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mapping.sail:685)),model/prelude_mapping.sail:685),Effect_aux(Effect_set([]),model/prelude_mapping.sail:685)),model/prelude_mapping.sail:685)),model/prelude_mapping.sail:685))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_64_backwards_matches"),model/prelude_mapping.sail:686),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:686)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:680)),model/prelude_mapping.sail:680)),E_aux(E_case(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:686)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:680)),model/prelude_mapping.sail:680)),[(Pat_aux(Pat_when(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:687)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:680)),model/prelude_mapping.sail:680)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_64_matches_prefix"),model/prelude_mapping.sail:687),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:687)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:680)),model/prelude_mapping.sail:680)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:680)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:688),[(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:680)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:688)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:680)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:680)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:688)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:688),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:688)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:680)),model/prelude_mapping.sail:680)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1140#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1140#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1140#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:688)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:680)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:689)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_true,model/prelude_mapping.sail:690)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:680)),model/prelude_mapping.sail:680)),E_aux(E_lit(L_aux(L_false,model/prelude_mapping.sail:691)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:680)),model/prelude_mapping.sail:680))],Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("hex_bits_64_backwards"),model/prelude_mapping.sail:693),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:693)),model/prelude_mapping.sail:693))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:693)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/prelude_mapping.sail:693)),model/prelude_mapping.sail:693)),model/prelude_mapping.sail:693))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("hex_bits_64_backwards"),model/prelude_mapping.sail:694),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/prelude_mapping.sail:694)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:680)),model/prelude_mapping.sail:680)),E_aux(E_case(E_aux(E_app(Id_aux(Id("hex_bits_64_matches_prefix"),model/prelude_mapping.sail:695),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:695)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:680)),model/prelude_mapping.sail:680)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:680)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_when(P_aux(P_app(Id_aux(Id("Some"),model/prelude_mapping.sail:696),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("bv"),model/prelude_mapping.sail:696)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:680)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("n"),model/prelude_mapping.sail:696)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:680)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:680)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("n"),model/prelude_mapping.sail:696)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("string_length"),model/prelude_mapping.sail:696),[(E_aux(E_id(Id_aux(Id("s"),model/prelude_mapping.sail:696)),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:680)),model/prelude_mapping.sail:680)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:13)),model/prelude.sail:13)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex1146#"),Unknown)),Unknown))],NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1146#"),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_n"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex1146#"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("bv"),model/prelude_mapping.sail:696)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:680)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:680)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude_mapping.sail:680)),model/prelude_mapping.sail:680))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude_mapping.sail:680)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_val(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("mem_meta"),model/prelude_mem_metadata.sail:7)),model/prelude_mem_metadata.sail:7),P_aux(P_id(Id_aux(Id("default_meta"),model/prelude_mem_metadata.sail:7)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)),E_aux(E_lit(L_aux(L_unit,model/prelude_mem_metadata.sail:7)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("__WriteRAM_Meta"),model/prelude_mem_metadata.sail:9),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude_mem_metadata.sail:9),Kid_aux(Var("'n"),model/prelude_mem_metadata.sail:9)),model/prelude_mem_metadata.sail:9)),model/prelude_mem_metadata.sail:9))]),model/prelude_mem_metadata.sail:9),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude_mem_metadata.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem_metadata.sail:9)),model/prelude_mem_metadata.sail:9)),model/prelude_mem_metadata.sail:9))]),model/prelude_mem_metadata.sail:9));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:9)),model/prelude_mem_metadata.sail:9),Effect_aux(Effect_set([(BE_aux(BE_wmvt,model/prelude_mem_metadata.sail:9))]),model/prelude_mem_metadata.sail:9)),model/prelude_mem_metadata.sail:9)),model/prelude_mem_metadata.sail:9))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("__WriteRAM_Meta"),model/prelude_mem_metadata.sail:10),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("addr"),model/prelude_mem_metadata.sail:10)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/prelude_mem_metadata.sail:10)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem_metadata.sail:9)),model/prelude_mem_metadata.sail:9)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("meta"),model/prelude_mem_metadata.sail:10)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem_metadata.sail:9)),model/prelude_mem_metadata.sail:9)),Unknown))]),Unknown));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/prelude_mem_metadata.sail:10)),E_aux(E_lit(L_aux(L_unit,model/prelude_mem_metadata.sail:10)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem_metadata.sail:9)),model/prelude_mem_metadata.sail:9)),Unknown))]),Unknown));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:9)),model/prelude_mem_metadata.sail:9),Effect_aux(Effect_set([(BE_aux(BE_wmvt,model/prelude_mem_metadata.sail:9))]),model/prelude_mem_metadata.sail:9)),model/prelude_mem_metadata.sail:9)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("__ReadRAM_Meta"),model/prelude_mem_metadata.sail:12),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude_mem_metadata.sail:12),Kid_aux(Var("'n"),model/prelude_mem_metadata.sail:12)),model/prelude_mem_metadata.sail:12)),model/prelude_mem_metadata.sail:12))]),model/prelude_mem_metadata.sail:12),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude_mem_metadata.sail:12),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem_metadata.sail:12)),model/prelude_mem_metadata.sail:12)),model/prelude_mem_metadata.sail:12))]),model/prelude_mem_metadata.sail:12))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5),Effect_aux(Effect_set([(BE_aux(BE_rmem,model/prelude_mem_metadata.sail:12))]),model/prelude_mem_metadata.sail:12)),model/prelude_mem_metadata.sail:12)),model/prelude_mem_metadata.sail:12))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("__ReadRAM_Meta"),model/prelude_mem_metadata.sail:13),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("addr"),model/prelude_mem_metadata.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/prelude_mem_metadata.sail:13)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem_metadata.sail:12)),model/prelude_mem_metadata.sail:12)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem_metadata.sail:12)),model/prelude_mem_metadata.sail:12)),Unknown))]),Unknown))]),model/prelude_mem_metadata.sail:13)),E_aux(E_lit(L_aux(L_unit,model/prelude_mem_metadata.sail:13)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem_metadata.sail:12)),model/prelude_mem_metadata.sail:12)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5),Effect_aux(Effect_set([(BE_aux(BE_rmem,model/prelude_mem_metadata.sail:12))]),model/prelude_mem_metadata.sail:12)),model/prelude_mem_metadata.sail:12)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("write_ram"),model/prelude_mem.sail:22),[lem: "write_ram",coq: "write_ram"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude_mem.sail:22),Kid_aux(Var("'n"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),model/prelude_mem.sail:22));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/prelude_mem.sail:22),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),model/prelude_mem.sail:22),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),model/prelude_mem.sail:22))]),model/prelude_mem.sail:22),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude_mem.sail:22),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),model/prelude_mem.sail:22))]),model/prelude_mem.sail:22));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/prelude_mem.sail:22),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22),Effect_aux(Effect_set([(BE_aux(BE_wmv,model/prelude_mem.sail:22));(BE_aux(BE_wmvt,model/prelude_mem.sail:22))]),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),model/prelude_mem.sail:22))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("write_ram"),model/prelude_mem.sail:23),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("wk"),model/prelude_mem.sail:23)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)));(P_aux(P_id(Id_aux(Id("addr"),model/prelude_mem.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/prelude_mem.sail:23)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("data"),model/prelude_mem.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/prelude_mem.sail:22),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("meta"),model/prelude_mem.sail:23)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/prelude_mem.sail:22),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/prelude_mem.sail:23-34)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mem.sail:31)),model/prelude_mem.sail:31),P_aux(P_id(Id_aux(Id("ret"),model/prelude_mem.sail:31)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex1160#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mem.sail:31)),model/prelude_mem.sail:31)),E_aux(E_app(Id_aux(Id("__write_mem"),model/prelude_mem.sail:31),[(E_aux(E_id(Id_aux(Id("wk"),model/prelude_mem.sail:31)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/prelude_mem.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/prelude_mem.sail:31)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("data"),model/prelude_mem.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/prelude_mem.sail:22),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/regfp.sail:137)),../sail/lib/regfp.sail:137))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_id(Id_aux(Id("ret"),model/prelude_mem.sail:32)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex1160#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("__WriteRAM_Meta"),model/prelude_mem.sail:32),[(E_aux(E_id(Id_aux(Id("addr"),model/prelude_mem.sail:32)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/prelude_mem.sail:32)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("meta"),model/prelude_mem.sail:32)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:9)),model/prelude_mem_metadata.sail:9)),E_aux(E_lit(L_aux(L_unit,model/prelude_mem.sail:32)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_id(Id_aux(Id("ret"),model/prelude_mem.sail:33)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex1160#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/prelude_mem.sail:22),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22),Effect_aux(Effect_set([(BE_aux(BE_wmv,model/prelude_mem.sail:22));(BE_aux(BE_wmvt,model/prelude_mem.sail:22))]),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("write_ram_ea"),model/prelude_mem.sail:36),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude_mem.sail:36),Kid_aux(Var("'n"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)),model/prelude_mem.sail:36));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/prelude_mem.sail:36),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)),model/prelude_mem.sail:36),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)),model/prelude_mem.sail:36))]),model/prelude_mem.sail:36),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude_mem.sail:36),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)),model/prelude_mem.sail:36))]),model/prelude_mem.sail:36))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36),Effect_aux(Effect_set([(BE_aux(BE_eamem,model/prelude_mem.sail:36))]),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)),model/prelude_mem.sail:36))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("write_ram_ea"),model/prelude_mem.sail:37),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("wk"),model/prelude_mem.sail:37)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)));(P_aux(P_id(Id_aux(Id("addr"),model/prelude_mem.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/prelude_mem.sail:37)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)),Unknown))]),Unknown))]),model/prelude_mem.sail:37-38)),E_aux(E_app(Id_aux(Id("__write_mem_ea"),model/prelude_mem.sail:38),[(E_aux(E_id(Id_aux(Id("wk"),model/prelude_mem.sail:38)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/prelude_mem.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/prelude_mem.sail:38)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:133)),../sail/lib/regfp.sail:133))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36),Effect_aux(Effect_set([(BE_aux(BE_eamem,model/prelude_mem.sail:36))]),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("read_ram"),model/prelude_mem.sail:40),[lem: "read_ram",coq: "read_ram"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude_mem.sail:40),Kid_aux(Var("'n"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),model/prelude_mem.sail:40));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/prelude_mem.sail:40),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),model/prelude_mem.sail:40),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),model/prelude_mem.sail:40))]),model/prelude_mem.sail:40),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude_mem.sail:40),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),model/prelude_mem.sail:40))]),model/prelude_mem.sail:40));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40))],Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/prelude_mem.sail:40),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/prelude_mem.sail:40),Effect_aux(Effect_set([(BE_aux(BE_rmem,model/prelude_mem.sail:40));(BE_aux(BE_rmemt,model/prelude_mem.sail:40))]),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),model/prelude_mem.sail:40))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("read_ram"),model/prelude_mem.sail:41),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rk"),model/prelude_mem.sail:41)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)));(P_aux(P_id(Id_aux(Id("addr"),model/prelude_mem.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/prelude_mem.sail:41)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("read_meta"),model/prelude_mem.sail:41)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex1167#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex1167#"),Unknown)),Unknown)),Unknown))]),Unknown))]),model/prelude_mem.sail:41-43)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("meta"),model/prelude_mem.sail:42)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)),E_aux(E_if(E_aux(E_id(Id_aux(Id("read_meta"),model/prelude_mem.sail:42)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex1167#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("__ReadRAM_Meta"),model/prelude_mem.sail:42),[(E_aux(E_id(Id_aux(Id("addr"),model/prelude_mem.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/prelude_mem.sail:42)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)),E_aux(E_id(Id_aux(Id("default_meta"),model/prelude_mem.sail:42)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))),None),E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("__read_mem"),model/prelude_mem.sail:43),[(E_aux(E_id(Id_aux(Id("rk"),model/prelude_mem.sail:43)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/prelude_mem.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/prelude_mem.sail:43)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),../sail/lib/regfp.sail:129),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),../sail/lib/regfp.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("meta"),model/prelude_mem.sail:43)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/prelude_mem.sail:40),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/prelude_mem.sail:40))),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/prelude_mem.sail:40),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/prelude_mem.sail:40))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex1167#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/prelude_mem.sail:40),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/prelude_mem.sail:40),Effect_aux(Effect_set([(BE_aux(BE_rmem,model/prelude_mem.sail:40));(BE_aux(BE_rmemt,model/prelude_mem.sail:40))]),model/prelude_mem.sail:40)),model/prelude_mem.sail:40)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("__TraceMemoryWrite"),model/prelude_mem.sail:45),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude_mem.sail:45),Kid_aux(Var("'n"),model/prelude_mem.sail:45)),model/prelude_mem.sail:45)),model/prelude_mem.sail:45));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude_mem.sail:45),Kid_aux(Var("'m"),model/prelude_mem.sail:45)),model/prelude_mem.sail:45)),model/prelude_mem.sail:45))]),model/prelude_mem.sail:45),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude_mem.sail:45),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:45)),model/prelude_mem.sail:45)),model/prelude_mem.sail:45))]),model/prelude_mem.sail:45));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude_mem.sail:45)),model/prelude_mem.sail:45)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/prelude_mem.sail:45),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:45)),model/prelude_mem.sail:45)),model/prelude_mem.sail:45)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem.sail:45)),model/prelude_mem.sail:45),Effect_aux(Effect_set([]),model/prelude_mem.sail:45)),model/prelude_mem.sail:45)),model/prelude_mem.sail:45))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("__TraceMemoryRead"),model/prelude_mem.sail:46),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude_mem.sail:46),Kid_aux(Var("'n"),model/prelude_mem.sail:46)),model/prelude_mem.sail:46)),model/prelude_mem.sail:46));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/prelude_mem.sail:46),Kid_aux(Var("'m"),model/prelude_mem.sail:46)),model/prelude_mem.sail:46)),model/prelude_mem.sail:46))]),model/prelude_mem.sail:46),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude_mem.sail:46),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:46)),model/prelude_mem.sail:46)),model/prelude_mem.sail:46))]),model/prelude_mem.sail:46));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'m"),model/prelude_mem.sail:46)),model/prelude_mem.sail:46)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/prelude_mem.sail:46),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/prelude_mem.sail:46)),model/prelude_mem.sail:46)),model/prelude_mem.sail:46)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem.sail:46)),model/prelude_mem.sail:46),Effect_aux(Effect_set([]),model/prelude_mem.sail:46)),model/prelude_mem.sail:46)),model/prelude_mem.sail:46))));(DEF_type(..type_def));(DEF_val(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_ptw"),model/riscv_types_ext.sail:9)),model/riscv_types_ext.sail:9),P_aux(P_id(Id_aux(Id("init_ext_ptw"),model/riscv_types_ext.sail:9)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)),E_aux(E_lit(L_aux(L_unit,model/riscv_types_ext.sail:9)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_translate_exception"),model/riscv_types_ext.sail:21),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ext_ptw_error"),model/riscv_types_ext.sail:21)),model/riscv_types_ext.sail:21))],Typ_aux(Typ_id(Id_aux(Id("ext_exc_type"),model/riscv_types_ext.sail:21)),model/riscv_types_ext.sail:21),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("ext_exc_type"),model/riscv_types_ext.sail:21)),model/riscv_types_ext.sail:21)),model/riscv_types_ext.sail:21),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_translate_exception"),model/riscv_types_ext.sail:21),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_ptw_error"),model/riscv_types_ext.sail:21)),model/riscv_types_ext.sail:21),P_aux(P_id(Id_aux(Id("e"),model/riscv_types_ext.sail:21)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:15)),model/riscv_types_ext.sail:15))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:15)),model/riscv_types_ext.sail:15)),E_aux(E_id(Id_aux(Id("e"),model/riscv_types_ext.sail:22)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:15)),model/riscv_types_ext.sail:15))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:15)),model/riscv_types_ext.sail:15))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:18)),model/riscv_types_ext.sail:18),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("xlen_val"),model/riscv_types.sail:6)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("xlen_max_unsigned"),model/riscv_types.sail:8)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),Unknown)),model/prelude.sail:95),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_app(Id_aux(Id("pow2"),model/riscv_types.sail:8),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude.sail:95),[(A_aux(A_nexp(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),Unknown)),model/prelude.sail:95)),model/prelude.sail:95))]),model/prelude.sail:95)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_types.sail:8)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),Unknown)),model/prelude.sail:95),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("xlen_max_signed"),model/riscv_types.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18)),model/prelude.sail:95),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_app(Id_aux(Id("pow2"),model/riscv_types.sail:9),[(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_types.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude.sail:95),[(A_aux(A_nexp(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18)),model/prelude.sail:95)),model/prelude.sail:95))]),model/prelude.sail:95)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_types.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18)),model/prelude.sail:95),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("xlen_min_signed"),model/riscv_types.sail:10)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18)),model/prelude.sail:95)),../sail/lib/arith.sail:18)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_lit(L_aux(L_num(0),model/riscv_types.sail:10)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("pow2"),model/riscv_types.sail:10),[(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_types.sail:10)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude.sail:95),[(A_aux(A_nexp(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18)),model/prelude.sail:95)),model/prelude.sail:95))]),model/prelude.sail:95)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18)),model/prelude.sail:95)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18))),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("regidx_to_regno"),model/riscv_types.sail:25),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:25),Kid_aux(Var("'n"),model/riscv_types.sail:25)),model/riscv_types.sail:25))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),model/riscv_types.sail:25),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:25)),model/riscv_types.sail:25)),model/riscv_types.sail:25),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:25)),model/riscv_types.sail:25),Nexp_aux(Nexp_constant(32),model/riscv_types.sail:25)),model/riscv_types.sail:25)),model/riscv_types.sail:25),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:23),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:25)),model/riscv_types.sail:25)),model/riscv_types.sail:23))]),model/riscv_types.sail:23)),model/riscv_types.sail:25),Effect_aux(Effect_set([]),model/riscv_types.sail:25)),model/riscv_types.sail:25)),model/riscv_types.sail:25))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("regidx_to_regno"),model/riscv_types.sail:26),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("b"),model/riscv_types.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_let(LB_aux(LB_val(P_aux(P_var(P_aux(P_id(Id_aux(Id("r"),model/riscv_types.sail:26)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_r"),Unknown)),Unknown)),Unknown))]),Unknown)),TP_aux(TP_var(Kid_aux(Var("'r"),model/riscv_types.sail:26)),model/riscv_types.sail:26)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_r"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_types.sail:26),[(E_aux(E_id(Id_aux(Id("b"),model/riscv_types.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:25)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),None),E_aux(E_id(Id_aux(Id("r"),model/riscv_types.sail:26)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_r"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:25),Kid_aux(Var("'n"),model/riscv_types.sail:25)),model/riscv_types.sail:25))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),model/riscv_types.sail:25),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:25)),model/riscv_types.sail:25)),model/riscv_types.sail:25),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:25)),model/riscv_types.sail:25),Nexp_aux(Nexp_constant(32),model/riscv_types.sail:25)),model/riscv_types.sail:25)),model/riscv_types.sail:25),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:23),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:25)),model/riscv_types.sail:25)),model/riscv_types.sail:23))]),model/riscv_types.sail:23)),model/riscv_types.sail:25))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:25),Kid_aux(Var("'n"),model/riscv_types.sail:25)),model/riscv_types.sail:25))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),model/riscv_types.sail:25),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:25)),model/riscv_types.sail:25)),model/riscv_types.sail:25),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:25)),model/riscv_types.sail:25),Nexp_aux(Nexp_constant(32),model/riscv_types.sail:25)),model/riscv_types.sail:25)),model/riscv_types.sail:25),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:23),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:25)),model/riscv_types.sail:25)),model/riscv_types.sail:23))]),model/riscv_types.sail:23)),model/riscv_types.sail:25),Effect_aux(Effect_set([]),model/riscv_types.sail:25)),model/riscv_types.sail:25)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("creg2reg_idx"),model/riscv_types.sail:29),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_types.sail:29)),model/riscv_types.sail:29)),model/riscv_types.sail:29))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("creg2reg_idx"),model/riscv_types.sail:30),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("creg"),model/riscv_types.sail:30)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_lit(L_aux(L_bin("01"),model/riscv_types.sail:30)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("creg"),model/riscv_types.sail:30)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(2),Unknown),Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_types.sail:29)),model/riscv_types.sail:29)))]),None)));(DEF_val(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_types.sail:33)),model/riscv_types.sail:33),P_aux(P_id(Id_aux(Id("zreg"),model/riscv_types.sail:33)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_types.sail:33)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_types.sail:34)),model/riscv_types.sail:34),P_aux(P_id(Id_aux(Id("ra"),model/riscv_types.sail:34)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_bin("00001"),model/riscv_types.sail:34)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_types.sail:35)),model/riscv_types.sail:35),P_aux(P_id(Id_aux(Id("sp"),model/riscv_types.sail:35)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_bin("00010"),model/riscv_types.sail:35)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Architecture_of_num"),model/riscv_types.sail:46),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Architecture_of_num"),model/riscv_types.sail:46),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RV32"),model/riscv_types.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RV64"),model/riscv_types.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RV128"),model/riscv_types.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_Architecture"),model/riscv_types.sail:46),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_Architecture"),model/riscv_types.sail:46),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RV32"),model/riscv_types.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RV64"),model/riscv_types.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RV128"),model/riscv_types.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Architecture"),model/riscv_types.sail:46),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("Architecture"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Architecture"),model/riscv_types.sail:46),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("RV32"),model/riscv_types.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)));(E_aux(E_id(Id_aux(Id("RV64"),model/riscv_types.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)));(E_aux(E_id(Id_aux(Id("RV128"),model/riscv_types.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Architecture"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("Architecture"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("architecture"),model/riscv_types.sail:48),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_types.sail:48)),model/riscv_types.sail:48))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48)),model/riscv_types.sail:48),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("architecture"),model/riscv_types.sail:48),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_types.sail:48)),model/riscv_types.sail:48),P_aux(P_id(Id_aux(Id("a"),model/riscv_types.sail:48)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("a"),model/riscv_types.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_types.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_types.sail:50),[(E_aux(E_id(Id_aux(Id("RV32"),model/riscv_types.sail:50)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("10"),model/riscv_types.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_types.sail:51),[(E_aux(E_id(Id_aux(Id("RV64"),model/riscv_types.sail:51)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_types.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_types.sail:52),[(E_aux(E_id(Id_aux(Id("RV128"),model/riscv_types.sail:52)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("None"),model/riscv_types.sail:53),[(E_aux(E_lit(L_aux(L_unit,model/riscv_types.sail:53)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("arch_to_bits"),model/riscv_types.sail:56),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:56)),model/riscv_types.sail:56))],Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_types.sail:56)),model/riscv_types.sail:56),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_types.sail:56)),model/riscv_types.sail:56)),model/riscv_types.sail:56),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("arch_to_bits"),model/riscv_types.sail:56),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:56)),model/riscv_types.sail:56),P_aux(P_id(Id_aux(Id("a"),model/riscv_types.sail:56)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:56)),model/riscv_types.sail:56))),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:56)),model/riscv_types.sail:56)),E_aux(E_case(E_aux(E_id(Id_aux(Id("a"),model/riscv_types.sail:57)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:56)),model/riscv_types.sail:56)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RV32"),model/riscv_types.sail:58)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:56)),model/riscv_types.sail:56)),E_aux(E_lit(L_aux(L_bin("01"),model/riscv_types.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RV64"),model/riscv_types.sail:59)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:56)),model/riscv_types.sail:56)),E_aux(E_lit(L_aux(L_bin("10"),model/riscv_types.sail:59)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RV128"),model/riscv_types.sail:60)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:56)),model/riscv_types.sail:56)),E_aux(E_lit(L_aux(L_bin("11"),model/riscv_types.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:56)),model/riscv_types.sail:56))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Privilege_of_num"),model/riscv_types.sail:66),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Privilege_of_num"),model/riscv_types.sail:66),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("User"),model/riscv_types.sail:66)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_types.sail:66)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Machine"),model/riscv_types.sail:66)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_Privilege"),model/riscv_types.sail:66),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_Privilege"),model/riscv_types.sail:66),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("User"),model/riscv_types.sail:66)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_types.sail:66)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_types.sail:66)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Privilege"),model/riscv_types.sail:66),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("Privilege"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Privilege"),model/riscv_types.sail:66),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("User"),model/riscv_types.sail:66)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_types.sail:66)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_types.sail:66)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Privilege"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("Privilege"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("privLevel_to_bits"),model/riscv_types.sail:68),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:68)),model/riscv_types.sail:68))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_types.sail:68)),model/riscv_types.sail:68)),model/riscv_types.sail:68))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("privLevel_to_bits"),model/riscv_types.sail:69),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("p"),model/riscv_types.sail:69)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:68)),model/riscv_types.sail:68)),E_aux(E_case(E_aux(E_id(Id_aux(Id("p"),model/riscv_types.sail:70)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:68)),model/riscv_types.sail:68)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("User"),model/riscv_types.sail:71)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:68)),model/riscv_types.sail:68)),E_aux(E_lit(L_aux(L_bin("00"),model/riscv_types.sail:71)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_types.sail:72)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:68)),model/riscv_types.sail:68)),E_aux(E_lit(L_aux(L_bin("01"),model/riscv_types.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_types.sail:73)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:68)),model/riscv_types.sail:68)),E_aux(E_lit(L_aux(L_bin("11"),model/riscv_types.sail:73)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:68)),model/riscv_types.sail:68))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_types.sail:68)),model/riscv_types.sail:68)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("privLevel_of_bits"),model/riscv_types.sail:76),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:76)),model/riscv_types.sail:76),Effect_aux(Effect_set([]),model/riscv_types.sail:76)),model/riscv_types.sail:76)),model/riscv_types.sail:76))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("privLevel_of_bits"),model/riscv_types.sail:77),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("p"),model/riscv_types.sail:77)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("p"),model/riscv_types.sail:78)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("00"),model/riscv_types.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("User"),model/riscv_types.sail:79)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_types.sail:80)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_types.sail:80)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_types.sail:81)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Machine"),model/riscv_types.sail:81)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:76)),model/riscv_types.sail:76))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:76)),model/riscv_types.sail:76),Effect_aux(Effect_set([]),model/riscv_types.sail:76)),model/riscv_types.sail:76)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("privLevel_to_str"),model/riscv_types.sail:84),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:84)),model/riscv_types.sail:84))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:84)),model/riscv_types.sail:84),Effect_aux(Effect_set([]),model/riscv_types.sail:84)),model/riscv_types.sail:84)),model/riscv_types.sail:84))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("privLevel_to_str"),model/riscv_types.sail:85),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("p"),model/riscv_types.sail:85)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:84)),model/riscv_types.sail:84)),E_aux(E_case(E_aux(E_id(Id_aux(Id("p"),model/riscv_types.sail:86)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:84)),model/riscv_types.sail:84)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("User"),model/riscv_types.sail:87)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:84)),model/riscv_types.sail:84)),E_aux(E_lit(L_aux(L_string("U"),model/riscv_types.sail:87)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_types.sail:88)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:84)),model/riscv_types.sail:84)),E_aux(E_lit(L_aux(L_string("S"),model/riscv_types.sail:88)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_types.sail:89)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:84)),model/riscv_types.sail:84)),E_aux(E_lit(L_aux(L_string("M"),model/riscv_types.sail:89)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:84)),model/riscv_types.sail:84))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:84)),model/riscv_types.sail:84))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:84)),model/riscv_types.sail:84),Effect_aux(Effect_set([]),model/riscv_types.sail:84)),model/riscv_types.sail:84)))]),None)));(DEF_overload(Id_aux(Id("to_str"),model/riscv_types.sail:92),[(Id_aux(Id("privLevel_to_str"),model/riscv_types.sail:92))]));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Retired_of_num"),model/riscv_types.sail:96),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Retired_of_num"),model/riscv_types.sail:96),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_types.sail:96)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_types.sail:96)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_Retired"),model/riscv_types.sail:96),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_Retired"),model/riscv_types.sail:96),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_types.sail:96)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_types.sail:96)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Retired"),model/riscv_types.sail:96),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("Retired"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Retired"),model/riscv_types.sail:96),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_types.sail:96)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_types.sail:96)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Retired"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("Retired"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_AccessType"),model/riscv_types.sail:100),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/riscv_types.sail:100),Kid_aux(Var("'a"),model/riscv_types.sail:100)),model/riscv_types.sail:100)),model/riscv_types.sail:100))]),model/riscv_types.sail:100),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:100)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:100)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_AccessType"),model/riscv_types.sail:100),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("typ_a"),model/riscv_types.sail:100)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:100)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:104)),model/riscv_types.sail:104),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:104)),model/riscv_types.sail:104))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:104)),model/riscv_types.sail:104)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:104)),model/riscv_types.sail:104))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:101)),model/riscv_types.sail:101),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:101)),model/riscv_types.sail:101))),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:101)),model/riscv_types.sail:101)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:101)),model/riscv_types.sail:101))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("Read"),model/riscv_types.sail:101),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:101)),model/riscv_types.sail:101)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:100)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("Write"),model/riscv_types.sail:102),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:101)),model/riscv_types.sail:101)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:100)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("ReadWrite"),model/riscv_types.sail:103),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:101)),model/riscv_types.sail:101)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:100)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("Execute"),model/riscv_types.sail:104),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:104)),model/riscv_types.sail:104)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:100)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:100)),Unknown)),Unknown))]),:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:100)),Unknown)),Unknown))]),:1))),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:100)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:100)),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:100)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:100)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("word_width_of_num"),model/riscv_types.sail:107),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("word_width_of_num"),model/riscv_types.sail:107),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("BYTE"),model/riscv_types.sail:107)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("HALF"),model/riscv_types.sail:107)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("WORD"),model/riscv_types.sail:107)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("DOUBLE"),model/riscv_types.sail:107)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_word_width"),model/riscv_types.sail:107),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_word_width"),model/riscv_types.sail:107),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("BYTE"),model/riscv_types.sail:107)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("HALF"),model/riscv_types.sail:107)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("WORD"),model/riscv_types.sail:107)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("DOUBLE"),model/riscv_types.sail:107)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)),E_aux(E_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_word_width"),model/riscv_types.sail:107),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("word_width"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_word_width"),model/riscv_types.sail:107),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("BYTE"),model/riscv_types.sail:107)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)));(E_aux(E_id(Id_aux(Id("HALF"),model/riscv_types.sail:107)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)));(E_aux(E_id(Id_aux(Id("WORD"),model/riscv_types.sail:107)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)));(E_aux(E_id(Id_aux(Id("DOUBLE"),model/riscv_types.sail:107)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("word_width"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("word_width"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("word_width"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("InterruptType_of_num"),model/riscv_types.sail:113),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("InterruptType_of_num"),model/riscv_types.sail:113),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("I_U_Software"),model/riscv_types.sail:114)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("I_S_Software"),model/riscv_types.sail:115)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("I_M_Software"),model/riscv_types.sail:116)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("I_U_Timer"),model/riscv_types.sail:117)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("I_S_Timer"),model/riscv_types.sail:118)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(5),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("I_M_Timer"),model/riscv_types.sail:119)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(6),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("I_U_External"),model/riscv_types.sail:120)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(7),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("I_S_External"),model/riscv_types.sail:121)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("I_M_External"),model/riscv_types.sail:122)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_InterruptType"),model/riscv_types.sail:113),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_InterruptType"),model/riscv_types.sail:113),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_U_Software"),model/riscv_types.sail:114)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_S_Software"),model/riscv_types.sail:115)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_M_Software"),model/riscv_types.sail:116)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_U_Timer"),model/riscv_types.sail:117)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)),E_aux(E_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_S_Timer"),model/riscv_types.sail:118)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)),E_aux(E_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_M_Timer"),model/riscv_types.sail:119)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)),E_aux(E_lit(L_aux(L_num(5),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_U_External"),model/riscv_types.sail:120)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)),E_aux(E_lit(L_aux(L_num(6),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_S_External"),model/riscv_types.sail:121)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)),E_aux(E_lit(L_aux(L_num(7),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_M_External"),model/riscv_types.sail:122)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)),E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_InterruptType"),model/riscv_types.sail:113),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("InterruptType"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_InterruptType"),model/riscv_types.sail:113),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("I_U_Software"),model/riscv_types.sail:114)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)));(E_aux(E_id(Id_aux(Id("I_S_Software"),model/riscv_types.sail:115)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)));(E_aux(E_id(Id_aux(Id("I_M_Software"),model/riscv_types.sail:116)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)));(E_aux(E_id(Id_aux(Id("I_U_Timer"),model/riscv_types.sail:117)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)));(E_aux(E_id(Id_aux(Id("I_S_Timer"),model/riscv_types.sail:118)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)));(E_aux(E_id(Id_aux(Id("I_M_Timer"),model/riscv_types.sail:119)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)));(E_aux(E_id(Id_aux(Id("I_U_External"),model/riscv_types.sail:120)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)));(E_aux(E_id(Id_aux(Id("I_S_External"),model/riscv_types.sail:121)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)));(E_aux(E_id(Id_aux(Id("I_M_External"),model/riscv_types.sail:122)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("InterruptType"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("interruptType_to_bits"),model/riscv_types.sail:125),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:125)),model/riscv_types.sail:125))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_types.sail:125)),model/riscv_types.sail:125)),model/riscv_types.sail:125))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("interruptType_to_bits"),model/riscv_types.sail:126),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("i"),model/riscv_types.sail:126)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:125)),model/riscv_types.sail:125)),E_aux(E_case(E_aux(E_id(Id_aux(Id("i"),model/riscv_types.sail:127)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:125)),model/riscv_types.sail:125)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_U_Software"),model/riscv_types.sail:128)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:125)),model/riscv_types.sail:125)),E_aux(E_lit(L_aux(L_hex("00"),model/riscv_types.sail:128)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_S_Software"),model/riscv_types.sail:129)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:125)),model/riscv_types.sail:125)),E_aux(E_lit(L_aux(L_hex("01"),model/riscv_types.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_M_Software"),model/riscv_types.sail:130)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:125)),model/riscv_types.sail:125)),E_aux(E_lit(L_aux(L_hex("03"),model/riscv_types.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_U_Timer"),model/riscv_types.sail:131)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:125)),model/riscv_types.sail:125)),E_aux(E_lit(L_aux(L_hex("04"),model/riscv_types.sail:131)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_S_Timer"),model/riscv_types.sail:132)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:125)),model/riscv_types.sail:125)),E_aux(E_lit(L_aux(L_hex("05"),model/riscv_types.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_M_Timer"),model/riscv_types.sail:133)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:125)),model/riscv_types.sail:125)),E_aux(E_lit(L_aux(L_hex("07"),model/riscv_types.sail:133)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_U_External"),model/riscv_types.sail:134)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:125)),model/riscv_types.sail:125)),E_aux(E_lit(L_aux(L_hex("08"),model/riscv_types.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_S_External"),model/riscv_types.sail:135)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:125)),model/riscv_types.sail:125)),E_aux(E_lit(L_aux(L_hex("09"),model/riscv_types.sail:135)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("I_M_External"),model/riscv_types.sail:136)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:125)),model/riscv_types.sail:125)),E_aux(E_lit(L_aux(L_hex("0b"),model/riscv_types.sail:136)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:125)),model/riscv_types.sail:125))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_types.sail:125)),model/riscv_types.sail:125)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_ExceptionType"),model/riscv_types.sail:141),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),model/riscv_types.sail:141),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_ExceptionType"),model/riscv_types.sail:141),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_exc_type"),model/riscv_types.sail:160)),model/riscv_types.sail:160),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:18)),model/riscv_types_ext.sail:18))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:18)),model/riscv_types_ext.sail:18)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:18)),model/riscv_types_ext.sail:18))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("E_Fetch_Addr_Align"),model/riscv_types.sail:142),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_Fetch_Access_Fault"),model/riscv_types.sail:143),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_Illegal_Instr"),model/riscv_types.sail:144),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_Breakpoint"),model/riscv_types.sail:145),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_Load_Addr_Align"),model/riscv_types.sail:146),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_Load_Access_Fault"),model/riscv_types.sail:147),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_SAMO_Addr_Align"),model/riscv_types.sail:148),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_SAMO_Access_Fault"),model/riscv_types.sail:149),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_U_EnvCall"),model/riscv_types.sail:150),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_S_EnvCall"),model/riscv_types.sail:151),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_Reserved_10"),model/riscv_types.sail:152),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_M_EnvCall"),model/riscv_types.sail:153),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_Fetch_Page_Fault"),model/riscv_types.sail:154),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_Load_Page_Fault"),model/riscv_types.sail:155),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_Reserved_14"),model/riscv_types.sail:156),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_SAMO_Page_Fault"),model/riscv_types.sail:157),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:142)),model/riscv_types.sail:142)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_app(Id_aux(Id("E_Extension"),model/riscv_types.sail:160),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:18)),model/riscv_types_ext.sail:18)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141)),:1))),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("exceptionType_to_bits"),model/riscv_types.sail:163),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_types.sail:163)),model/riscv_types.sail:163)),model/riscv_types.sail:163))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("exceptionType_to_bits"),model/riscv_types.sail:164),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("e"),model/riscv_types.sail:164)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_case(E_aux(E_id(Id_aux(Id("e"),model/riscv_types.sail:165)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Fetch_Addr_Align"),model/riscv_types.sail:166),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:166)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("00"),model/riscv_types.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Fetch_Access_Fault"),model/riscv_types.sail:167),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:167)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("01"),model/riscv_types.sail:167)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Illegal_Instr"),model/riscv_types.sail:168),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:168)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("02"),model/riscv_types.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Breakpoint"),model/riscv_types.sail:169),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:169)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("03"),model/riscv_types.sail:169)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Load_Addr_Align"),model/riscv_types.sail:170),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:170)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("04"),model/riscv_types.sail:170)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Load_Access_Fault"),model/riscv_types.sail:171),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:171)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("05"),model/riscv_types.sail:171)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_SAMO_Addr_Align"),model/riscv_types.sail:172),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:172)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("06"),model/riscv_types.sail:172)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_SAMO_Access_Fault"),model/riscv_types.sail:173),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:173)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("07"),model/riscv_types.sail:173)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_U_EnvCall"),model/riscv_types.sail:174),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:174)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("08"),model/riscv_types.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_S_EnvCall"),model/riscv_types.sail:175),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:175)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("09"),model/riscv_types.sail:175)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Reserved_10"),model/riscv_types.sail:176),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:176)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("0a"),model/riscv_types.sail:176)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_M_EnvCall"),model/riscv_types.sail:177),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:177)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("0b"),model/riscv_types.sail:177)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Fetch_Page_Fault"),model/riscv_types.sail:178),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:178)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("0c"),model/riscv_types.sail:178)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Load_Page_Fault"),model/riscv_types.sail:179),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:179)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("0d"),model/riscv_types.sail:179)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Reserved_14"),model/riscv_types.sail:180),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:180)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("0e"),model/riscv_types.sail:180)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_SAMO_Page_Fault"),model/riscv_types.sail:181),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:181)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("0f"),model/riscv_types.sail:181)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Extension"),model/riscv_types.sail:184),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_types.sail:184)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:18)),model/riscv_types_ext.sail:18)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163)),E_aux(E_lit(L_aux(L_hex("18"),model/riscv_types.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:163)),model/riscv_types.sail:163))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_types.sail:163)),model/riscv_types.sail:163)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_ExceptionType"),model/riscv_types.sail:187),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:187),Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),model/riscv_types.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187),Nexp_aux(Nexp_id(Id_aux(Id("xlen"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:187),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187))]),model/riscv_types.sail:187)),model/riscv_types.sail:187),Effect_aux(Effect_set([]),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_ExceptionType"),model/riscv_types.sail:188),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("e"),model/riscv_types.sail:188)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_case(E_aux(E_id(Id_aux(Id("e"),model/riscv_types.sail:189)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Fetch_Addr_Align"),model/riscv_types.sail:190),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:190)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(0),model/riscv_types.sail:190)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Fetch_Access_Fault"),model/riscv_types.sail:191),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:191)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(1),model/riscv_types.sail:191)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Illegal_Instr"),model/riscv_types.sail:192),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:192)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(2),model/riscv_types.sail:192)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Breakpoint"),model/riscv_types.sail:193),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:193)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(3),model/riscv_types.sail:193)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Load_Addr_Align"),model/riscv_types.sail:194),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:194)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(4),model/riscv_types.sail:194)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Load_Access_Fault"),model/riscv_types.sail:195),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:195)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(5),model/riscv_types.sail:195)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_SAMO_Addr_Align"),model/riscv_types.sail:196),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:196)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(6),model/riscv_types.sail:196)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_SAMO_Access_Fault"),model/riscv_types.sail:197),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:197)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(7),model/riscv_types.sail:197)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_U_EnvCall"),model/riscv_types.sail:198),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:198)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(8),model/riscv_types.sail:198)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_S_EnvCall"),model/riscv_types.sail:199),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:199)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(9),model/riscv_types.sail:199)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Reserved_10"),model/riscv_types.sail:200),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:200)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(10),model/riscv_types.sail:200)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_M_EnvCall"),model/riscv_types.sail:201),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:201)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(11),model/riscv_types.sail:201)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Fetch_Page_Fault"),model/riscv_types.sail:202),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:202)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(12),model/riscv_types.sail:202)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Load_Page_Fault"),model/riscv_types.sail:203),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:203)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(13),model/riscv_types.sail:203)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Reserved_14"),model/riscv_types.sail:204),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:204)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(14),model/riscv_types.sail:204)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_SAMO_Page_Fault"),model/riscv_types.sail:205),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:205)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(15),model/riscv_types.sail:205)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Extension"),model/riscv_types.sail:208),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_types.sail:208)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:18)),model/riscv_types_ext.sail:18)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),E_aux(E_lit(L_aux(L_num(24),model/riscv_types.sail:208)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:187),Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),model/riscv_types.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187),Nexp_aux(Nexp_id(Id_aux(Id("xlen"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:187),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187))]),model/riscv_types.sail:187)),model/riscv_types.sail:187))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:187)),model/riscv_types.sail:187))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:187),Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),model/riscv_types.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187),Nexp_aux(Nexp_id(Id_aux(Id("xlen"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:187),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187))]),model/riscv_types.sail:187)),model/riscv_types.sail:187),Effect_aux(Effect_set([]),model/riscv_types.sail:187)),model/riscv_types.sail:187)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("exceptionType_to_str"),model/riscv_types.sail:212),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:212)),model/riscv_types.sail:212),Effect_aux(Effect_set([]),model/riscv_types.sail:212)),model/riscv_types.sail:212)),model/riscv_types.sail:212))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("exceptionType_to_str"),model/riscv_types.sail:213),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("e"),model/riscv_types.sail:213)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_case(E_aux(E_id(Id_aux(Id("e"),model/riscv_types.sail:214)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Fetch_Addr_Align"),model/riscv_types.sail:215),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:215)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("misaligned-fetch"),model/riscv_types.sail:215)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Fetch_Access_Fault"),model/riscv_types.sail:216),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:216)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("fetch-access-fault"),model/riscv_types.sail:216)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Illegal_Instr"),model/riscv_types.sail:217),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:217)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("illegal-instruction"),model/riscv_types.sail:217)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Breakpoint"),model/riscv_types.sail:218),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:218)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("breakpoint"),model/riscv_types.sail:218)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Load_Addr_Align"),model/riscv_types.sail:219),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:219)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("misaligned-load"),model/riscv_types.sail:219)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Load_Access_Fault"),model/riscv_types.sail:220),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:220)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("load-access-fault"),model/riscv_types.sail:220)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_SAMO_Addr_Align"),model/riscv_types.sail:221),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:221)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("misaliged-store/amo"),model/riscv_types.sail:221)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_SAMO_Access_Fault"),model/riscv_types.sail:222),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:222)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("store/amo-access-fault"),model/riscv_types.sail:222)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_U_EnvCall"),model/riscv_types.sail:223),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:223)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("u-call"),model/riscv_types.sail:223)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_S_EnvCall"),model/riscv_types.sail:224),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:224)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("s-call"),model/riscv_types.sail:224)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Reserved_10"),model/riscv_types.sail:225),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:225)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("reserved-0"),model/riscv_types.sail:225)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_M_EnvCall"),model/riscv_types.sail:226),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:226)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("m-call"),model/riscv_types.sail:226)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Fetch_Page_Fault"),model/riscv_types.sail:227),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:227)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("fetch-page-fault"),model/riscv_types.sail:227)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Load_Page_Fault"),model/riscv_types.sail:228),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:228)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("load-page-fault"),model/riscv_types.sail:228)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Reserved_14"),model/riscv_types.sail:229),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:229)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("reserved-1"),model/riscv_types.sail:229)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_SAMO_Page_Fault"),model/riscv_types.sail:230),[(P_aux(P_lit(L_aux(L_unit,model/riscv_types.sail:230)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("store/amo-page-fault"),model/riscv_types.sail:230)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("E_Extension"),model/riscv_types.sail:233),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_types.sail:233)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:18)),model/riscv_types_ext.sail:18)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212)),E_aux(E_lit(L_aux(L_string("extension-exception"),model/riscv_types.sail:233)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:212)),model/riscv_types.sail:212))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_types.sail:212)),model/riscv_types.sail:212))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:212)),model/riscv_types.sail:212),Effect_aux(Effect_set([]),model/riscv_types.sail:212)),model/riscv_types.sail:212)))]),None)));(DEF_overload(Id_aux(Id("to_str"),model/riscv_types.sail:236),[(Id_aux(Id("exceptionType_to_str"),model/riscv_types.sail:236))]));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_exception"),model/riscv_types.sail:240),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),model/riscv_types.sail:240),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("exception"),model/riscv_types.sail:240)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_exception"),model/riscv_types.sail:240),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:241)),model/riscv_types.sail:241),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:241)),model/riscv_types.sail:241))),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:241)),model/riscv_types.sail:241)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:241)),model/riscv_types.sail:241))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:242)),model/riscv_types.sail:242),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:242)),model/riscv_types.sail:242))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:242)),model/riscv_types.sail:242)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:242)),model/riscv_types.sail:242))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("Error_not_implemented"),model/riscv_types.sail:241),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:241)),model/riscv_types.sail:241)))]),Typ_aux(Typ_app(Id_aux(Id("exception"),model/riscv_types.sail:240),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Error_internal_error"),model/riscv_types.sail:242),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:242)),model/riscv_types.sail:242)))]),Typ_aux(Typ_app(Id_aux(Id("exception"),model/riscv_types.sail:240),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("exception"),model/riscv_types.sail:240)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("exception"),model/riscv_types.sail:240)),:1))),Typ_aux(Typ_id(Id_aux(Id("exception"),model/riscv_types.sail:240)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("exception"),model/riscv_types.sail:240)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("exception"),model/riscv_types.sail:240)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("not_implemented"),model/riscv_types.sail:245),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/riscv_types.sail:245),Kid_aux(Var("'a"),model/riscv_types.sail:245)),model/riscv_types.sail:245)),model/riscv_types.sail:245))]),model/riscv_types.sail:245),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:245)),model/riscv_types.sail:245))],Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:245)),model/riscv_types.sail:245),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_types.sail:245))]),model/riscv_types.sail:245)),model/riscv_types.sail:245)),model/riscv_types.sail:245))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("not_implemented"),model/riscv_types.sail:246),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("message"),model/riscv_types.sail:246)),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:245)),model/riscv_types.sail:245)),E_aux(E_throw(E_aux(E_app(Id_aux(Id("Error_not_implemented"),model/riscv_types.sail:246),[(E_aux(E_id(Id_aux(Id("message"),model/riscv_types.sail:246)),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:245)),model/riscv_types.sail:245)))]),Typ_aux(Typ_app(Id_aux(Id("exception"),model/riscv_types.sail:240),[]),Unknown))),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:245)),model/riscv_types.sail:245))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:245)),model/riscv_types.sail:245))],Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:245)),model/riscv_types.sail:245),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_types.sail:245))]),model/riscv_types.sail:245)),model/riscv_types.sail:245)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("internal_error"),model/riscv_types.sail:248),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/riscv_types.sail:248),Kid_aux(Var("'a"),model/riscv_types.sail:248)),model/riscv_types.sail:248)),model/riscv_types.sail:248))]),model/riscv_types.sail:248),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:248)),model/riscv_types.sail:248))],Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:248)),model/riscv_types.sail:248),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_types.sail:248))]),model/riscv_types.sail:248)),model/riscv_types.sail:248)),model/riscv_types.sail:248))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("internal_error"),model/riscv_types.sail:249),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("s"),model/riscv_types.sail:249)),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:248)),model/riscv_types.sail:248)),E_aux(E_block([(E_aux(E_assert(E_aux(E_lit(L_aux(L_false,model/riscv_types.sail:250)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("s"),model/riscv_types.sail:250)),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:248)),model/riscv_types.sail:248))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_throw(E_aux(E_app(Id_aux(Id("Error_internal_error"),model/riscv_types.sail:251),[(E_aux(E_lit(L_aux(L_unit,model/riscv_types.sail:251)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("exception"),model/riscv_types.sail:240),[]),Unknown))),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:248)),model/riscv_types.sail:248)))]),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:248)),model/riscv_types.sail:248))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:248)),model/riscv_types.sail:248))],Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_types.sail:248)),model/riscv_types.sail:248),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_types.sail:248))]),model/riscv_types.sail:248)),model/riscv_types.sail:248)))]),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("TrapVectorMode_of_num"),model/riscv_types.sail:257),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("TrapVectorMode_of_num"),model/riscv_types.sail:257),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("TV_Direct"),model/riscv_types.sail:257)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("TV_Vector"),model/riscv_types.sail:257)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("TV_Reserved"),model/riscv_types.sail:257)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_TrapVectorMode"),model/riscv_types.sail:257),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_TrapVectorMode"),model/riscv_types.sail:257),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("TV_Direct"),model/riscv_types.sail:257)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("TV_Vector"),model/riscv_types.sail:257)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("TV_Reserved"),model/riscv_types.sail:257)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_TrapVectorMode"),model/riscv_types.sail:257),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_TrapVectorMode"),model/riscv_types.sail:257),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("TV_Direct"),model/riscv_types.sail:257)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown)));(E_aux(E_id(Id_aux(Id("TV_Vector"),model/riscv_types.sail:257)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown)));(E_aux(E_id(Id_aux(Id("TV_Reserved"),model/riscv_types.sail:257)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("trapVectorMode_of_bits"),model/riscv_types.sail:259),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:256)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:259)),model/riscv_types.sail:259),Effect_aux(Effect_set([]),model/riscv_types.sail:259)),model/riscv_types.sail:259)),model/riscv_types.sail:259))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("trapVectorMode_of_bits"),model/riscv_types.sail:260),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("m"),model/riscv_types.sail:260)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:256)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("m"),model/riscv_types.sail:261)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:256)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("00"),model/riscv_types.sail:262)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("TV_Direct"),model/riscv_types.sail:262)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_types.sail:263)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("TV_Vector"),model/riscv_types.sail:263)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:256)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("TV_Reserved"),model/riscv_types.sail:264)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:257)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:259)),model/riscv_types.sail:259))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:256)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:259)),model/riscv_types.sail:259),Effect_aux(Effect_set([]),model/riscv_types.sail:259)),model/riscv_types.sail:259)))]),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ExtStatus_of_num"),model/riscv_types.sail:270),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ExtStatus_of_num"),model/riscv_types.sail:270),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Off"),model/riscv_types.sail:270)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Initial"),model/riscv_types.sail:270)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Clean"),model/riscv_types.sail:270)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Dirty"),model/riscv_types.sail:270)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_ExtStatus"),model/riscv_types.sail:270),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_ExtStatus"),model/riscv_types.sail:270),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Off"),model/riscv_types.sail:270)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Initial"),model/riscv_types.sail:270)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Clean"),model/riscv_types.sail:270)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Dirty"),model/riscv_types.sail:270)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown)),E_aux(E_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_ExtStatus"),model/riscv_types.sail:270),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_ExtStatus"),model/riscv_types.sail:270),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("Off"),model/riscv_types.sail:270)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown)));(E_aux(E_id(Id_aux(Id("Initial"),model/riscv_types.sail:270)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown)));(E_aux(E_id(Id_aux(Id("Clean"),model/riscv_types.sail:270)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown)));(E_aux(E_id(Id_aux(Id("Dirty"),model/riscv_types.sail:270)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("extStatus_to_bits"),model/riscv_types.sail:272),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:272)),model/riscv_types.sail:272))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_types.sail:272)),model/riscv_types.sail:272)),model/riscv_types.sail:272))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("extStatus_to_bits"),model/riscv_types.sail:273),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("e"),model/riscv_types.sail:273)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:272)),model/riscv_types.sail:272)),E_aux(E_case(E_aux(E_id(Id_aux(Id("e"),model/riscv_types.sail:274)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:272)),model/riscv_types.sail:272)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Off"),model/riscv_types.sail:275)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:272)),model/riscv_types.sail:272)),E_aux(E_lit(L_aux(L_bin("00"),model/riscv_types.sail:275)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Initial"),model/riscv_types.sail:276)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:272)),model/riscv_types.sail:272)),E_aux(E_lit(L_aux(L_bin("01"),model/riscv_types.sail:276)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Clean"),model/riscv_types.sail:277)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:272)),model/riscv_types.sail:272)),E_aux(E_lit(L_aux(L_bin("10"),model/riscv_types.sail:277)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Dirty"),model/riscv_types.sail:278)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:272)),model/riscv_types.sail:272)),E_aux(E_lit(L_aux(L_bin("11"),model/riscv_types.sail:278)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:272)),model/riscv_types.sail:272))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_types.sail:272)),model/riscv_types.sail:272)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("extStatus_of_bits"),model/riscv_types.sail:281),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:281)),model/riscv_types.sail:281),Effect_aux(Effect_set([]),model/riscv_types.sail:281)),model/riscv_types.sail:281)),model/riscv_types.sail:281))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("extStatus_of_bits"),model/riscv_types.sail:282),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("e"),model/riscv_types.sail:282)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("e"),model/riscv_types.sail:283)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("00"),model/riscv_types.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Off"),model/riscv_types.sail:284)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_types.sail:285)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Initial"),model/riscv_types.sail:285)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("10"),model/riscv_types.sail:286)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Clean"),model/riscv_types.sail:286)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_types.sail:287)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Dirty"),model/riscv_types.sail:287)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:281)),model/riscv_types.sail:281))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:281)),model/riscv_types.sail:281),Effect_aux(Effect_set([]),model/riscv_types.sail:281)),model/riscv_types.sail:281)))]),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("SATPMode_of_num"),model/riscv_types.sail:293),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("SATPMode_of_num"),model/riscv_types.sail:293),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Sbare"),model/riscv_types.sail:293)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Sv32"),model/riscv_types.sail:293)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Sv39"),model/riscv_types.sail:293)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("Sv48"),model/riscv_types.sail:293)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_SATPMode"),model/riscv_types.sail:293),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_SATPMode"),model/riscv_types.sail:293),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Sbare"),model/riscv_types.sail:293)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Sv32"),model/riscv_types.sail:293)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Sv39"),model/riscv_types.sail:293)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Sv48"),model/riscv_types.sail:293)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)),E_aux(E_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_SATPMode"),model/riscv_types.sail:293),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("SATPMode"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_SATPMode"),model/riscv_types.sail:293),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("Sbare"),model/riscv_types.sail:293)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)));(E_aux(E_id(Id_aux(Id("Sv32"),model/riscv_types.sail:293)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)));(E_aux(E_id(Id_aux(Id("Sv39"),model/riscv_types.sail:293)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)));(E_aux(E_id(Id_aux(Id("Sv48"),model/riscv_types.sail:293)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("SATPMode"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("satp64Mode_of_bits"),model/riscv_types.sail:295),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295));(Typ_aux(Typ_id(Id_aux(Id("satp_mode"),model/riscv_types.sail:295)),model/riscv_types.sail:295))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),model/riscv_types.sail:295)),model/riscv_types.sail:295))]),model/riscv_types.sail:295),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),model/riscv_types.sail:295)),model/riscv_types.sail:295))]),model/riscv_types.sail:295)),model/riscv_types.sail:295),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("satp64Mode_of_bits"),model/riscv_types.sail:295),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295),P_aux(P_id(Id_aux(Id("a"),model/riscv_types.sail:295)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295))),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("satp_mode"),model/riscv_types.sail:295)),model/riscv_types.sail:295),P_aux(P_id(Id_aux(Id("m"),model/riscv_types.sail:295)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_types.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_types.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_types.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_types.sail:295-302)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("a"),model/riscv_types.sail:296)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295)));(E_aux(E_id(Id_aux(Id("m"),model/riscv_types.sail:296)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_types.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_types.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295)));(P_aux(P_lit(L_aux(L_hex("0"),model/riscv_types.sail:297)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_types.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_types.sail:297),[(E_aux(E_id(Id_aux(Id("Sbare"),model/riscv_types.sail:297)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("RV32"),model/riscv_types.sail:298)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295)));(P_aux(P_lit(L_aux(L_hex("1"),model/riscv_types.sail:298)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_types.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_types.sail:298),[(E_aux(E_id(Id_aux(Id("Sv32"),model/riscv_types.sail:298)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("RV64"),model/riscv_types.sail:299)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295)));(P_aux(P_lit(L_aux(L_hex("8"),model/riscv_types.sail:299)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_types.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_types.sail:299),[(E_aux(E_id(Id_aux(Id("Sv39"),model/riscv_types.sail:299)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("RV64"),model/riscv_types.sail:300)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295)));(P_aux(P_lit(L_aux(L_hex("9"),model/riscv_types.sail:300)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_types.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_types.sail:300),[(E_aux(E_id(Id_aux(Id("Sv48"),model/riscv_types.sail:300)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_types.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_types.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("None"),model/riscv_types.sail:301),[(E_aux(E_lit(L_aux(L_unit,model/riscv_types.sail:301)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),model/riscv_types.sail:295)),model/riscv_types.sail:295))]),model/riscv_types.sail:295))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:295)),model/riscv_types.sail:295));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_types.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),model/riscv_types.sail:295)),model/riscv_types.sail:295))]),model/riscv_types.sail:295),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("uop_of_num"),model/riscv_types.sail:309),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_types.sail:309)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("uop_of_num"),model/riscv_types.sail:309),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_LUI"),model/riscv_types.sail:309)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_types.sail:309)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_AUIPC"),model/riscv_types.sail:309)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_types.sail:309)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_types.sail:309)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_types.sail:309)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_uop"),model/riscv_types.sail:309),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_types.sail:309)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_uop"),model/riscv_types.sail:309),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_types.sail:309)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_types.sail:309)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_LUI"),model/riscv_types.sail:309)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_types.sail:309)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_AUIPC"),model/riscv_types.sail:309)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_types.sail:309)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_types.sail:309)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_uop"),model/riscv_types.sail:309),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("uop"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_uop"),model/riscv_types.sail:309),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("RISCV_LUI"),model/riscv_types.sail:309)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_types.sail:309)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_AUIPC"),model/riscv_types.sail:309)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_types.sail:309)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("uop"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("uop"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("uop"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("bop_of_num"),model/riscv_types.sail:310),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("bop_of_num"),model/riscv_types.sail:310),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_BEQ"),model/riscv_types.sail:310)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_BNE"),model/riscv_types.sail:310)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_BLT"),model/riscv_types.sail:310)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_BGE"),model/riscv_types.sail:311)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_BLTU"),model/riscv_types.sail:311)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_BGEU"),model/riscv_types.sail:311)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_bop"),model/riscv_types.sail:310),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_bop"),model/riscv_types.sail:310),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_BEQ"),model/riscv_types.sail:310)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_BNE"),model/riscv_types.sail:310)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_BLT"),model/riscv_types.sail:310)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_BGE"),model/riscv_types.sail:311)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)),E_aux(E_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_BLTU"),model/riscv_types.sail:311)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)),E_aux(E_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_BGEU"),model/riscv_types.sail:311)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)),E_aux(E_lit(L_aux(L_num(5),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_bop"),model/riscv_types.sail:310),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("bop"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_bop"),model/riscv_types.sail:310),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("RISCV_BEQ"),model/riscv_types.sail:310)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_BNE"),model/riscv_types.sail:310)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_BLT"),model/riscv_types.sail:310)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_BGE"),model/riscv_types.sail:311)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_BLTU"),model/riscv_types.sail:311)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_BGEU"),model/riscv_types.sail:311)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bop"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("bop"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("bop"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("iop_of_num"),model/riscv_types.sail:312),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("iop_of_num"),model/riscv_types.sail:312),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_ADDI"),model/riscv_types.sail:312)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SLTI"),model/riscv_types.sail:312)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SLTIU"),model/riscv_types.sail:312)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_XORI"),model/riscv_types.sail:313)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_ORI"),model/riscv_types.sail:313)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_ANDI"),model/riscv_types.sail:313)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_iop"),model/riscv_types.sail:312),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_iop"),model/riscv_types.sail:312),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_ADDI"),model/riscv_types.sail:312)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLTI"),model/riscv_types.sail:312)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLTIU"),model/riscv_types.sail:312)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_XORI"),model/riscv_types.sail:313)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)),E_aux(E_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_ORI"),model/riscv_types.sail:313)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)),E_aux(E_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_ANDI"),model/riscv_types.sail:313)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)),E_aux(E_lit(L_aux(L_num(5),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_iop"),model/riscv_types.sail:312),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("iop"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_iop"),model/riscv_types.sail:312),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("RISCV_ADDI"),model/riscv_types.sail:312)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SLTI"),model/riscv_types.sail:312)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SLTIU"),model/riscv_types.sail:312)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_XORI"),model/riscv_types.sail:313)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_ORI"),model/riscv_types.sail:313)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_ANDI"),model/riscv_types.sail:313)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("iop"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("iop"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("iop"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sop_of_num"),model/riscv_types.sail:314),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("sop_of_num"),model/riscv_types.sail:314),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SLLI"),model/riscv_types.sail:314)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SRLI"),model/riscv_types.sail:314)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SRAI"),model/riscv_types.sail:314)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_sop"),model/riscv_types.sail:314),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_sop"),model/riscv_types.sail:314),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLLI"),model/riscv_types.sail:314)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRLI"),model/riscv_types.sail:314)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRAI"),model/riscv_types.sail:314)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_sop"),model/riscv_types.sail:314),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("sop"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_sop"),model/riscv_types.sail:314),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("RISCV_SLLI"),model/riscv_types.sail:314)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SRLI"),model/riscv_types.sail:314)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SRAI"),model/riscv_types.sail:314)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("sop"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("sop"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("sop"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("rop_of_num"),model/riscv_types.sail:315),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(9),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("rop_of_num"),model/riscv_types.sail:315),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_ADD"),model/riscv_types.sail:315)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SUB"),model/riscv_types.sail:315)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SLL"),model/riscv_types.sail:315)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SLT"),model/riscv_types.sail:315)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SLTU"),model/riscv_types.sail:316)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(5),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_XOR"),model/riscv_types.sail:316)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(6),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SRL"),model/riscv_types.sail:316)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(7),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SRA"),model/riscv_types.sail:316)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_OR"),model/riscv_types.sail:317)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_AND"),model/riscv_types.sail:317)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_rop"),model/riscv_types.sail:315),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(9),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_rop"),model/riscv_types.sail:315),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_ADD"),model/riscv_types.sail:315)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SUB"),model/riscv_types.sail:315)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLL"),model/riscv_types.sail:315)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLT"),model/riscv_types.sail:315)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)),E_aux(E_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLTU"),model/riscv_types.sail:316)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)),E_aux(E_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_XOR"),model/riscv_types.sail:316)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)),E_aux(E_lit(L_aux(L_num(5),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRL"),model/riscv_types.sail:316)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)),E_aux(E_lit(L_aux(L_num(6),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRA"),model/riscv_types.sail:316)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)),E_aux(E_lit(L_aux(L_num(7),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_OR"),model/riscv_types.sail:317)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)),E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_AND"),model/riscv_types.sail:317)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)),E_aux(E_lit(L_aux(L_num(9),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(9),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(9),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_rop"),model/riscv_types.sail:315),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("rop"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_rop"),model/riscv_types.sail:315),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("RISCV_ADD"),model/riscv_types.sail:315)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SUB"),model/riscv_types.sail:315)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SLL"),model/riscv_types.sail:315)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SLT"),model/riscv_types.sail:315)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SLTU"),model/riscv_types.sail:316)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_XOR"),model/riscv_types.sail:316)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SRL"),model/riscv_types.sail:316)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SRA"),model/riscv_types.sail:316)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_OR"),model/riscv_types.sail:317)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_AND"),model/riscv_types.sail:317)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("rop"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("rop"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("rop"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ropw_of_num"),model/riscv_types.sail:319),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ropw_of_num"),model/riscv_types.sail:319),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_ADDW"),model/riscv_types.sail:319)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SUBW"),model/riscv_types.sail:319)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SLLW"),model/riscv_types.sail:319)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SRLW"),model/riscv_types.sail:320)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SRAW"),model/riscv_types.sail:320)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_ropw"),model/riscv_types.sail:319),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_ropw"),model/riscv_types.sail:319),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_ADDW"),model/riscv_types.sail:319)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SUBW"),model/riscv_types.sail:319)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLLW"),model/riscv_types.sail:319)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRLW"),model/riscv_types.sail:320)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown)),E_aux(E_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRAW"),model/riscv_types.sail:320)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown)),E_aux(E_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_ropw"),model/riscv_types.sail:319),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("ropw"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_ropw"),model/riscv_types.sail:319),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("RISCV_ADDW"),model/riscv_types.sail:319)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SUBW"),model/riscv_types.sail:319)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SLLW"),model/riscv_types.sail:319)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SRLW"),model/riscv_types.sail:320)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SRAW"),model/riscv_types.sail:320)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ropw"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("ropw"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("ropw"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sopw_of_num"),model/riscv_types.sail:321),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("sopw_of_num"),model/riscv_types.sail:321),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SLLIW"),model/riscv_types.sail:321)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SRLIW"),model/riscv_types.sail:321)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("RISCV_SRAIW"),model/riscv_types.sail:322)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_sopw"),model/riscv_types.sail:321),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_sopw"),model/riscv_types.sail:321),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLLIW"),model/riscv_types.sail:321)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRLIW"),model/riscv_types.sail:321)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRAIW"),model/riscv_types.sail:322)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_sopw"),model/riscv_types.sail:321),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("sopw"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_sopw"),model/riscv_types.sail:321),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("RISCV_SLLIW"),model/riscv_types.sail:321)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SRLIW"),model/riscv_types.sail:321)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown)));(E_aux(E_id(Id_aux(Id("RISCV_SRAIW"),model/riscv_types.sail:322)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_types.sail:321)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("sopw"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("sopw"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("sopw"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("amoop_of_num"),model/riscv_types.sail:323),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("amoop_of_num"),model/riscv_types.sail:323),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("AMOSWAP"),model/riscv_types.sail:323)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("AMOADD"),model/riscv_types.sail:323)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("AMOXOR"),model/riscv_types.sail:323)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("AMOAND"),model/riscv_types.sail:323)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("AMOOR"),model/riscv_types.sail:323)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(5),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("AMOMIN"),model/riscv_types.sail:324)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(6),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("AMOMAX"),model/riscv_types.sail:324)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(7),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("AMOMINU"),model/riscv_types.sail:324)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("AMOMAXU"),model/riscv_types.sail:324)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_amoop"),model/riscv_types.sail:323),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_amoop"),model/riscv_types.sail:323),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOSWAP"),model/riscv_types.sail:323)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOADD"),model/riscv_types.sail:323)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOXOR"),model/riscv_types.sail:323)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOAND"),model/riscv_types.sail:323)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)),E_aux(E_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOOR"),model/riscv_types.sail:323)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)),E_aux(E_lit(L_aux(L_num(4),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOMIN"),model/riscv_types.sail:324)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)),E_aux(E_lit(L_aux(L_num(5),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOMAX"),model/riscv_types.sail:324)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)),E_aux(E_lit(L_aux(L_num(6),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOMINU"),model/riscv_types.sail:324)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)),E_aux(E_lit(L_aux(L_num(7),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOMAXU"),model/riscv_types.sail:324)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)),E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_amoop"),model/riscv_types.sail:323),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("amoop"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_amoop"),model/riscv_types.sail:323),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("AMOSWAP"),model/riscv_types.sail:323)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)));(E_aux(E_id(Id_aux(Id("AMOADD"),model/riscv_types.sail:323)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)));(E_aux(E_id(Id_aux(Id("AMOXOR"),model/riscv_types.sail:323)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)));(E_aux(E_id(Id_aux(Id("AMOAND"),model/riscv_types.sail:323)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)));(E_aux(E_id(Id_aux(Id("AMOOR"),model/riscv_types.sail:323)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)));(E_aux(E_id(Id_aux(Id("AMOMIN"),model/riscv_types.sail:324)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)));(E_aux(E_id(Id_aux(Id("AMOMAX"),model/riscv_types.sail:324)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)));(E_aux(E_id(Id_aux(Id("AMOMINU"),model/riscv_types.sail:324)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)));(E_aux(E_id(Id_aux(Id("AMOMAXU"),model/riscv_types.sail:324)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_types.sail:323)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("amoop"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("amoop"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("amoop"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("csrop_of_num"),model/riscv_types.sail:325),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("csrop_of_num"),model/riscv_types.sail:325),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("CSRRW"),model/riscv_types.sail:325)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("CSRRS"),model/riscv_types.sail:325)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("CSRRC"),model/riscv_types.sail:325)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_csrop"),model/riscv_types.sail:325),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_csrop"),model/riscv_types.sail:325),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("CSRRW"),model/riscv_types.sail:325)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("CSRRS"),model/riscv_types.sail:325)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("CSRRC"),model/riscv_types.sail:325)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_csrop"),model/riscv_types.sail:325),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("csrop"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_csrop"),model/riscv_types.sail:325),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("CSRRW"),model/riscv_types.sail:325)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown)));(E_aux(E_id(Id_aux(Id("CSRRS"),model/riscv_types.sail:325)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown)));(E_aux(E_id(Id_aux(Id("CSRRC"),model/riscv_types.sail:325)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_types.sail:325)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("csrop"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("csrop"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("csrop"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sep"),model/riscv_types.sail:327),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:327)),model/riscv_types.sail:327),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:327)),model/riscv_types.sail:327)),model/riscv_types.sail:327)),model/riscv_types.sail:327))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("sep"),model/riscv_types.sail:328),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:328)),model/riscv_types.sail:328),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:328)),model/riscv_types.sail:328)),model/riscv_types.sail:328)),model/riscv_types.sail:328),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_unit,model/riscv_types.sail:329)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_app(Id_aux(Id("opt_spc"),model/riscv_types.sail:329),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_types.sail:329)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:327)),model/riscv_types.sail:327)));(MP_aux(MP_lit(L_aux(L_string(","),model/riscv_types.sail:329)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("def_spc"),model/riscv_types.sail:329),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_types.sail:329)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:327)),model/riscv_types.sail:327)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:327)),model/riscv_types.sail:327))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types.sail:327)),model/riscv_types.sail:327),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:327)),model/riscv_types.sail:327)),model/riscv_types.sail:327)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("bool_bits"),model/riscv_types.sail:332),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_types.sail:332)),model/riscv_types.sail:332),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:332)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_types.sail:332)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("bool_bits"),model/riscv_types.sail:332),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_types.sail:332)),model/riscv_types.sail:332),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_types.sail:332),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:332)),model/riscv_types.sail:332))]),model/riscv_types.sail:332)),model/riscv_types.sail:332)),model/riscv_types.sail:332),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_true,model/riscv_types.sail:333)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("1"),model/riscv_types.sail:333)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_types.sail:332)),model/riscv_types.sail:332),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:332)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_types.sail:332)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_false,model/riscv_types.sail:334)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_types.sail:334)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_types.sail:332)),model/riscv_types.sail:332),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:332)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_types.sail:332)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("bool_not_bits"),model/riscv_types.sail:337),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_types.sail:337)),model/riscv_types.sail:337),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:337)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_types.sail:337)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("bool_not_bits"),model/riscv_types.sail:337),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_types.sail:337)),model/riscv_types.sail:337),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_types.sail:337),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:337)),model/riscv_types.sail:337))]),model/riscv_types.sail:337)),model/riscv_types.sail:337)),model/riscv_types.sail:337),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_true,model/riscv_types.sail:338)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_types.sail:338)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_types.sail:337)),model/riscv_types.sail:337),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:337)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_types.sail:337)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_false,model/riscv_types.sail:339)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("1"),model/riscv_types.sail:339)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_types.sail:337)),model/riscv_types.sail:337),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:337)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_types.sail:337)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("size_bits"),model/riscv_types.sail:342),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:342)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_types.sail:342)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("size_bits"),model/riscv_types.sail:342),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_types.sail:342),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:342)),model/riscv_types.sail:342))]),model/riscv_types.sail:342)),model/riscv_types.sail:342)),model/riscv_types.sail:342),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("BYTE"),model/riscv_types.sail:343)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("00"),model/riscv_types.sail:343)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:342)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_types.sail:342)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("HALF"),model/riscv_types.sail:344)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_types.sail:344)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:342)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_types.sail:342)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("WORD"),model/riscv_types.sail:345)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_types.sail:345)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:342)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_types.sail:342)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("DOUBLE"),model/riscv_types.sail:346)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("11"),model/riscv_types.sail:346)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:342)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_types.sail:342)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("size_mnemonic"),model/riscv_types.sail:349),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:349)),model/riscv_types.sail:349),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:349)),model/riscv_types.sail:349)),model/riscv_types.sail:349)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("size_mnemonic"),model/riscv_types.sail:349),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:349)),model/riscv_types.sail:349),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:349)),model/riscv_types.sail:349)),model/riscv_types.sail:349)),model/riscv_types.sail:349),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("BYTE"),model/riscv_types.sail:350)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:349)),model/riscv_types.sail:349))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("b"),model/riscv_types.sail:350)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:349)),model/riscv_types.sail:349),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:349)),model/riscv_types.sail:349)),model/riscv_types.sail:349)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("HALF"),model/riscv_types.sail:351)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:349)),model/riscv_types.sail:349))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("h"),model/riscv_types.sail:351)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:349)),model/riscv_types.sail:349),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:349)),model/riscv_types.sail:349)),model/riscv_types.sail:349)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("WORD"),model/riscv_types.sail:352)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:349)),model/riscv_types.sail:349))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("w"),model/riscv_types.sail:352)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:349)),model/riscv_types.sail:349),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:349)),model/riscv_types.sail:349)),model/riscv_types.sail:349)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("DOUBLE"),model/riscv_types.sail:353)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:349)),model/riscv_types.sail:349))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("d"),model/riscv_types.sail:353)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:349)),model/riscv_types.sail:349),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:349)),model/riscv_types.sail:349)),model/riscv_types.sail:349)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("word_width_bytes"),model/riscv_types.sail:356),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:356),Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:356),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))]),model/riscv_types.sail:356)),model/riscv_types.sail:356),Effect_aux(Effect_set([]),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("word_width_bytes"),model/riscv_types.sail:357),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("width"),model/riscv_types.sail:357)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),E_aux(E_case(E_aux(E_id(Id_aux(Id("width"),model/riscv_types.sail:357)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("BYTE"),model/riscv_types.sail:358)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),E_aux(E_lit(L_aux(L_num(1),model/riscv_types.sail:358)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("HALF"),model/riscv_types.sail:359)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),E_aux(E_lit(L_aux(L_num(2),model/riscv_types.sail:359)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("WORD"),model/riscv_types.sail:360)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),E_aux(E_lit(L_aux(L_num(4),model/riscv_types.sail:360)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("DOUBLE"),model/riscv_types.sail:361)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),E_aux(E_lit(L_aux(L_num(8),model/riscv_types.sail:361)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:356),Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:356),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))]),model/riscv_types.sail:356)),model/riscv_types.sail:356))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:356),Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:356),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))]),model/riscv_types.sail:356)),model/riscv_types.sail:356),Effect_aux(Effect_set([]),model/riscv_types.sail:356)),model/riscv_types.sail:356)))]),None)));(DEF_type(..type_def));(DEF_val(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_vmem_types.sail:5)),model/riscv_vmem_types.sail:5),P_aux(P_id(Id_aux(Id("Data"),model/riscv_vmem_types.sail:5)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_types.sail:5)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_vmem_types.sail:7)),model/riscv_vmem_types.sail:7),P_aux(P_id(Id_aux(Id("default_write_acc"),model/riscv_vmem_types.sail:7)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),E_aux(E_id(Id_aux(Id("Data"),model/riscv_vmem_types.sail:7)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("accessType_to_str"),model/riscv_vmem_types.sail:9),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_types.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:9))]),model/riscv_vmem_types.sail:9))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_vmem_types.sail:9)),model/riscv_vmem_types.sail:9),Effect_aux(Effect_set([]),model/riscv_vmem_types.sail:9)),model/riscv_vmem_types.sail:9)),model/riscv_vmem_types.sail:9))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("accessType_to_str"),model/riscv_vmem_types.sail:10),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("a"),model/riscv_vmem_types.sail:10)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_types.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:9))]),model/riscv_vmem_types.sail:9)),E_aux(E_case(E_aux(E_id(Id_aux(Id("a"),model/riscv_vmem_types.sail:11)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_types.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:9))]),model/riscv_vmem_types.sail:9)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Read"),model/riscv_vmem_types.sail:12),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_vmem_types.sail:12)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:101)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_types.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:9))]),model/riscv_vmem_types.sail:9)),E_aux(E_lit(L_aux(L_string("R"),model/riscv_vmem_types.sail:12)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Write"),model/riscv_vmem_types.sail:13),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_vmem_types.sail:13)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:102)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_types.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:9))]),model/riscv_vmem_types.sail:9)),E_aux(E_lit(L_aux(L_string("W"),model/riscv_vmem_types.sail:13)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("ReadWrite"),model/riscv_vmem_types.sail:14),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_vmem_types.sail:14)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:103)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_types.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:9))]),model/riscv_vmem_types.sail:9)),E_aux(E_lit(L_aux(L_string("RW"),model/riscv_vmem_types.sail:14)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Execute"),model/riscv_vmem_types.sail:15),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_types.sail:15)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_types.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:9))]),model/riscv_vmem_types.sail:9)),E_aux(E_lit(L_aux(L_string("X"),model/riscv_vmem_types.sail:15)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_vmem_types.sail:9)),model/riscv_vmem_types.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_types.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:9))]),model/riscv_vmem_types.sail:9))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_vmem_types.sail:9)),model/riscv_vmem_types.sail:9),Effect_aux(Effect_set([]),model/riscv_vmem_types.sail:9)),model/riscv_vmem_types.sail:9)))]),None)));(DEF_overload(Id_aux(Id("to_str"),model/riscv_vmem_types.sail:18),[(Id_aux(Id("accessType_to_str"),model/riscv_vmem_types.sail:18))]));(DEF_type(..type_def));(DEF_val(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_reg_type.sail:5)),model/riscv_reg_type.sail:5),P_aux(P_id(Id_aux(Id("zero_reg"),model/riscv_reg_type.sail:5)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_reg_type.sail:5),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_hex("0"),model/riscv_reg_type.sail:5)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("RegStr"),model/riscv_reg_type.sail:8),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_reg_type.sail:8)),model/riscv_reg_type.sail:8),Effect_aux(Effect_set([]),model/riscv_reg_type.sail:8)),model/riscv_reg_type.sail:8)),model/riscv_reg_type.sail:8))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("RegStr"),model/riscv_reg_type.sail:9),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("r"),model/riscv_reg_type.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("r"),model/riscv_reg_type.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_reg_type.sail:8)),model/riscv_reg_type.sail:8),Effect_aux(Effect_set([]),model/riscv_reg_type.sail:8)),model/riscv_reg_type.sail:8)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("regval_from_reg"),model/riscv_reg_type.sail:13),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_reg_type.sail:13)),model/riscv_reg_type.sail:13)),model/riscv_reg_type.sail:13))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("regval_from_reg"),model/riscv_reg_type.sail:14),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("r"),model/riscv_reg_type.sail:14)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("r"),model/riscv_reg_type.sail:14)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_reg_type.sail:13)),model/riscv_reg_type.sail:13)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("regval_into_reg"),model/riscv_reg_type.sail:16),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_reg_type.sail:16)),model/riscv_reg_type.sail:16)),model/riscv_reg_type.sail:16))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("regval_into_reg"),model/riscv_reg_type.sail:17),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),model/riscv_reg_type.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_reg_type.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_reg_type.sail:16)),model/riscv_reg_type.sail:16)))]),None)));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:3))]),model/riscv_regs.sail:3),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:3))]),model/riscv_regs.sail:3),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_regs.sail:3)),model/riscv_regs.sail:3),Id_aux(Id("PC"),model/riscv_regs.sail:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:4))]),model/riscv_regs.sail:4),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:4))]),model/riscv_regs.sail:4),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_regs.sail:4)),model/riscv_regs.sail:4),Id_aux(Id("nextPC"),model/riscv_regs.sail:4)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:7))]),model/riscv_regs.sail:7),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:7))]),model/riscv_regs.sail:7),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_regs.sail:7)),model/riscv_regs.sail:7),Id_aux(Id("instbits"),model/riscv_regs.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:11))]),model/riscv_regs.sail:11),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:11))]),model/riscv_regs.sail:11),Typ_aux(Typ_app(Id_aux(Id("vector"),model/riscv_regs.sail:11),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_regs.sail:11)),model/riscv_regs.sail:11));(A_aux(A_order(Ord_aux(Ord_dec,model/riscv_regs.sail:11)),model/riscv_regs.sail:11));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:11)),model/riscv_regs.sail:11)),model/riscv_regs.sail:11))]),model/riscv_regs.sail:11),Id_aux(Id("Xs"),model/riscv_regs.sail:11)),Typ_aux(Typ_app(Id_aux(Id("vector"),model/riscv_regs.sail:11),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_regs.sail:11)),model/riscv_regs.sail:11));(A_aux(A_order(Ord_aux(Ord_dec,model/riscv_regs.sail:11)),model/riscv_regs.sail:11));(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_regs.sail:11))]),model/riscv_regs.sail:11))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:13))]),model/riscv_regs.sail:13),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:13))]),model/riscv_regs.sail:13),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:13)),model/riscv_regs.sail:13),Id_aux(Id("x1"),model/riscv_regs.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:14))]),model/riscv_regs.sail:14),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:14))]),model/riscv_regs.sail:14),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:14)),model/riscv_regs.sail:14),Id_aux(Id("x2"),model/riscv_regs.sail:14)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:15))]),model/riscv_regs.sail:15),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:15))]),model/riscv_regs.sail:15),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:15)),model/riscv_regs.sail:15),Id_aux(Id("x3"),model/riscv_regs.sail:15)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:16))]),model/riscv_regs.sail:16),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:16))]),model/riscv_regs.sail:16),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:16)),model/riscv_regs.sail:16),Id_aux(Id("x4"),model/riscv_regs.sail:16)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:17))]),model/riscv_regs.sail:17),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:17))]),model/riscv_regs.sail:17),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:17)),model/riscv_regs.sail:17),Id_aux(Id("x5"),model/riscv_regs.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:18))]),model/riscv_regs.sail:18),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:18))]),model/riscv_regs.sail:18),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:18)),model/riscv_regs.sail:18),Id_aux(Id("x6"),model/riscv_regs.sail:18)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:19))]),model/riscv_regs.sail:19),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:19))]),model/riscv_regs.sail:19),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:19)),model/riscv_regs.sail:19),Id_aux(Id("x7"),model/riscv_regs.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:20))]),model/riscv_regs.sail:20),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:20))]),model/riscv_regs.sail:20),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:20)),model/riscv_regs.sail:20),Id_aux(Id("x8"),model/riscv_regs.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:21))]),model/riscv_regs.sail:21),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:21))]),model/riscv_regs.sail:21),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:21)),model/riscv_regs.sail:21),Id_aux(Id("x9"),model/riscv_regs.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:22))]),model/riscv_regs.sail:22),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:22))]),model/riscv_regs.sail:22),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:22)),model/riscv_regs.sail:22),Id_aux(Id("x10"),model/riscv_regs.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:23))]),model/riscv_regs.sail:23),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:23))]),model/riscv_regs.sail:23),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:23)),model/riscv_regs.sail:23),Id_aux(Id("x11"),model/riscv_regs.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:24))]),model/riscv_regs.sail:24),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:24))]),model/riscv_regs.sail:24),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:24)),model/riscv_regs.sail:24),Id_aux(Id("x12"),model/riscv_regs.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:25))]),model/riscv_regs.sail:25),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:25))]),model/riscv_regs.sail:25),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:25)),model/riscv_regs.sail:25),Id_aux(Id("x13"),model/riscv_regs.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:26))]),model/riscv_regs.sail:26),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:26))]),model/riscv_regs.sail:26),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:26)),model/riscv_regs.sail:26),Id_aux(Id("x14"),model/riscv_regs.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:27))]),model/riscv_regs.sail:27),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:27))]),model/riscv_regs.sail:27),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:27)),model/riscv_regs.sail:27),Id_aux(Id("x15"),model/riscv_regs.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:28))]),model/riscv_regs.sail:28),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:28))]),model/riscv_regs.sail:28),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:28)),model/riscv_regs.sail:28),Id_aux(Id("x16"),model/riscv_regs.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:29))]),model/riscv_regs.sail:29),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:29))]),model/riscv_regs.sail:29),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:29)),model/riscv_regs.sail:29),Id_aux(Id("x17"),model/riscv_regs.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:30))]),model/riscv_regs.sail:30),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:30))]),model/riscv_regs.sail:30),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:30)),model/riscv_regs.sail:30),Id_aux(Id("x18"),model/riscv_regs.sail:30)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:31))]),model/riscv_regs.sail:31),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:31))]),model/riscv_regs.sail:31),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:31)),model/riscv_regs.sail:31),Id_aux(Id("x19"),model/riscv_regs.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:32))]),model/riscv_regs.sail:32),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:32))]),model/riscv_regs.sail:32),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:32)),model/riscv_regs.sail:32),Id_aux(Id("x20"),model/riscv_regs.sail:32)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:33))]),model/riscv_regs.sail:33),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:33))]),model/riscv_regs.sail:33),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:33)),model/riscv_regs.sail:33),Id_aux(Id("x21"),model/riscv_regs.sail:33)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:34))]),model/riscv_regs.sail:34),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:34))]),model/riscv_regs.sail:34),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:34)),model/riscv_regs.sail:34),Id_aux(Id("x22"),model/riscv_regs.sail:34)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:35))]),model/riscv_regs.sail:35),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:35))]),model/riscv_regs.sail:35),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:35)),model/riscv_regs.sail:35),Id_aux(Id("x23"),model/riscv_regs.sail:35)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:36))]),model/riscv_regs.sail:36),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:36))]),model/riscv_regs.sail:36),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:36)),model/riscv_regs.sail:36),Id_aux(Id("x24"),model/riscv_regs.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:37))]),model/riscv_regs.sail:37),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:37))]),model/riscv_regs.sail:37),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:37)),model/riscv_regs.sail:37),Id_aux(Id("x25"),model/riscv_regs.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:38))]),model/riscv_regs.sail:38),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:38))]),model/riscv_regs.sail:38),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:38)),model/riscv_regs.sail:38),Id_aux(Id("x26"),model/riscv_regs.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:39))]),model/riscv_regs.sail:39),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:39))]),model/riscv_regs.sail:39),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:39)),model/riscv_regs.sail:39),Id_aux(Id("x27"),model/riscv_regs.sail:39)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:40))]),model/riscv_regs.sail:40),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:40))]),model/riscv_regs.sail:40),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:40)),model/riscv_regs.sail:40),Id_aux(Id("x28"),model/riscv_regs.sail:40)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:41))]),model/riscv_regs.sail:41),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:41))]),model/riscv_regs.sail:41),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:41)),model/riscv_regs.sail:41),Id_aux(Id("x29"),model/riscv_regs.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:42))]),model/riscv_regs.sail:42),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:42))]),model/riscv_regs.sail:42),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:42)),model/riscv_regs.sail:42),Id_aux(Id("x30"),model/riscv_regs.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:43))]),model/riscv_regs.sail:43),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:43))]),model/riscv_regs.sail:43),Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:43)),model/riscv_regs.sail:43),Id_aux(Id("x31"),model/riscv_regs.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("rX"),model/riscv_regs.sail:45),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_regs.sail:45),Kid_aux(Var("'n"),model/riscv_regs.sail:45)),model/riscv_regs.sail:45)),model/riscv_regs.sail:45));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),model/riscv_regs.sail:45),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:45)),model/riscv_regs.sail:45)),model/riscv_regs.sail:45),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:45)),model/riscv_regs.sail:45),Nexp_aux(Nexp_constant(32),model/riscv_regs.sail:45)),model/riscv_regs.sail:45)),model/riscv_regs.sail:45)),model/riscv_regs.sail:45))]),model/riscv_regs.sail:45),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:23),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:45)),model/riscv_regs.sail:45)),model/riscv_types.sail:23))]),model/riscv_types.sail:23))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:45));(BE_aux(BE_escape,model/riscv_regs.sail:45))]),model/riscv_regs.sail:45)),model/riscv_regs.sail:45)),model/riscv_regs.sail:45))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("rX"),model/riscv_regs.sail:46),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("r"),model/riscv_regs.sail:46)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:45)),model/riscv_regs.sail:45)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:47)),model/riscv_regs.sail:47),P_aux(P_id(Id_aux(Id("v"),model/riscv_regs.sail:47)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("r"),model/riscv_regs.sail:48)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:45)),model/riscv_regs.sail:45)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),model/riscv_regs.sail:49)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),model/riscv_regs.sail:50)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x1"),model/riscv_regs.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),model/riscv_regs.sail:51)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x2"),model/riscv_regs.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(3),model/riscv_regs.sail:52)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x3"),model/riscv_regs.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(4),model/riscv_regs.sail:53)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x4"),model/riscv_regs.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(5),model/riscv_regs.sail:54)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x5"),model/riscv_regs.sail:54)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(6),model/riscv_regs.sail:55)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x6"),model/riscv_regs.sail:55)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(7),model/riscv_regs.sail:56)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x7"),model/riscv_regs.sail:56)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(8),model/riscv_regs.sail:57)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x8"),model/riscv_regs.sail:57)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(9),model/riscv_regs.sail:58)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x9"),model/riscv_regs.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(10),model/riscv_regs.sail:59)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x10"),model/riscv_regs.sail:59)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(11),model/riscv_regs.sail:60)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x11"),model/riscv_regs.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(12),model/riscv_regs.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x12"),model/riscv_regs.sail:61)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(13),model/riscv_regs.sail:62)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x13"),model/riscv_regs.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(14),model/riscv_regs.sail:63)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x14"),model/riscv_regs.sail:63)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(15),model/riscv_regs.sail:64)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x15"),model/riscv_regs.sail:64)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(16),model/riscv_regs.sail:65)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x16"),model/riscv_regs.sail:65)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(17),model/riscv_regs.sail:66)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x17"),model/riscv_regs.sail:66)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(18),model/riscv_regs.sail:67)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x18"),model/riscv_regs.sail:67)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(19),model/riscv_regs.sail:68)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x19"),model/riscv_regs.sail:68)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(20),model/riscv_regs.sail:69)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x20"),model/riscv_regs.sail:69)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(21),model/riscv_regs.sail:70)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x21"),model/riscv_regs.sail:70)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(22),model/riscv_regs.sail:71)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x22"),model/riscv_regs.sail:71)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(23),model/riscv_regs.sail:72)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x23"),model/riscv_regs.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(24),model/riscv_regs.sail:73)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x24"),model/riscv_regs.sail:73)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(25),model/riscv_regs.sail:74)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x25"),model/riscv_regs.sail:74)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(26),model/riscv_regs.sail:75)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x26"),model/riscv_regs.sail:75)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(27),model/riscv_regs.sail:76)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x27"),model/riscv_regs.sail:76)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(28),model/riscv_regs.sail:77)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x28"),model/riscv_regs.sail:77)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(29),model/riscv_regs.sail:78)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x29"),model/riscv_regs.sail:78)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(30),model/riscv_regs.sail:79)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x30"),model/riscv_regs.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(31),model/riscv_regs.sail:80)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("x31"),model/riscv_regs.sail:80)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:45)),model/riscv_regs.sail:45)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assert(E_aux(E_lit(L_aux(L_false,model/riscv_regs.sail:81)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("invalid register number"),model/riscv_regs.sail:81)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:81)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("regval_from_reg"),model/riscv_regs.sail:83),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:83)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:45)),model/riscv_regs.sail:45)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:45));(BE_aux(BE_escape,model/riscv_regs.sail:45))]),model/riscv_regs.sail:45)),model/riscv_regs.sail:45)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("rvfi_wX"),model/riscv_regs.sail:93),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_regs.sail:93),Kid_aux(Var("'n"),model/riscv_regs.sail:93)),model/riscv_regs.sail:93)),model/riscv_regs.sail:93));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),model/riscv_regs.sail:93),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:93)),model/riscv_regs.sail:93)),model/riscv_regs.sail:93),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:93)),model/riscv_regs.sail:93),Nexp_aux(Nexp_constant(32),model/riscv_regs.sail:93)),model/riscv_regs.sail:93)),model/riscv_regs.sail:93)),model/riscv_regs.sail:93))]),model/riscv_regs.sail:93),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:23),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:93)),model/riscv_regs.sail:93)),model/riscv_types.sail:23))]),model/riscv_types.sail:23));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:93)),model/riscv_regs.sail:93),Effect_aux(Effect_set([]),model/riscv_regs.sail:93)),model/riscv_regs.sail:93)),model/riscv_regs.sail:93))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("rvfi_wX"),model/riscv_regs.sail:94),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r"),model/riscv_regs.sail:94)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:93)),model/riscv_regs.sail:93)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("v"),model/riscv_regs.sail:94)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:93)),model/riscv_regs.sail:93)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_regs.sail:94)),E_aux(E_lit(L_aux(L_unit,model/riscv_regs.sail:94)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:93)),model/riscv_regs.sail:93)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:93)),model/riscv_regs.sail:93),Effect_aux(Effect_set([]),model/riscv_regs.sail:93)),model/riscv_regs.sail:93)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("wX"),model/riscv_regs.sail:97),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_regs.sail:97),Kid_aux(Var("'n"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)),model/riscv_regs.sail:97));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),model/riscv_regs.sail:97),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)),model/riscv_regs.sail:97),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97),Nexp_aux(Nexp_constant(32),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)),model/riscv_regs.sail:97))]),model/riscv_regs.sail:97),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:23),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)),model/riscv_types.sail:23))]),model/riscv_types.sail:23));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:97));(BE_aux(BE_escape,model/riscv_regs.sail:97))]),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)),model/riscv_regs.sail:97))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("wX"),model/riscv_regs.sail:98),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r"),model/riscv_regs.sail:98)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("in_v"),model/riscv_regs.sail:98)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_regs.sail:98-140)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),model/riscv_regs.sail:99)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("regval_into_reg"),model/riscv_regs.sail:99),[(E_aux(E_id(Id_aux(Id("in_v"),model/riscv_regs.sail:99)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("r"),model/riscv_regs.sail:100)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),model/riscv_regs.sail:101)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_regs.sail:101)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),model/riscv_regs.sail:102)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x1"),model/riscv_regs.sail:102)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:102)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),model/riscv_regs.sail:103)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x2"),model/riscv_regs.sail:103)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:103)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(3),model/riscv_regs.sail:104)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x3"),model/riscv_regs.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(4),model/riscv_regs.sail:105)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x4"),model/riscv_regs.sail:105)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:105)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(5),model/riscv_regs.sail:106)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x5"),model/riscv_regs.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(6),model/riscv_regs.sail:107)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x6"),model/riscv_regs.sail:107)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:107)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(7),model/riscv_regs.sail:108)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x7"),model/riscv_regs.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(8),model/riscv_regs.sail:109)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x8"),model/riscv_regs.sail:109)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:109)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(9),model/riscv_regs.sail:110)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x9"),model/riscv_regs.sail:110)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:110)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(10),model/riscv_regs.sail:111)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x10"),model/riscv_regs.sail:111)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:111)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(11),model/riscv_regs.sail:112)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x11"),model/riscv_regs.sail:112)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:112)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(12),model/riscv_regs.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x12"),model/riscv_regs.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(13),model/riscv_regs.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x13"),model/riscv_regs.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(14),model/riscv_regs.sail:115)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x14"),model/riscv_regs.sail:115)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:115)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(15),model/riscv_regs.sail:116)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x15"),model/riscv_regs.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(16),model/riscv_regs.sail:117)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x16"),model/riscv_regs.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(17),model/riscv_regs.sail:118)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x17"),model/riscv_regs.sail:118)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:118)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(18),model/riscv_regs.sail:119)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x18"),model/riscv_regs.sail:119)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:119)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(19),model/riscv_regs.sail:120)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x19"),model/riscv_regs.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(20),model/riscv_regs.sail:121)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x20"),model/riscv_regs.sail:121)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:121)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(21),model/riscv_regs.sail:122)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x21"),model/riscv_regs.sail:122)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:122)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(22),model/riscv_regs.sail:123)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x22"),model/riscv_regs.sail:123)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:123)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(23),model/riscv_regs.sail:124)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x23"),model/riscv_regs.sail:124)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:124)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(24),model/riscv_regs.sail:125)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x24"),model/riscv_regs.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(25),model/riscv_regs.sail:126)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x25"),model/riscv_regs.sail:126)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:126)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(26),model/riscv_regs.sail:127)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x26"),model/riscv_regs.sail:127)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:127)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(27),model/riscv_regs.sail:128)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x27"),model/riscv_regs.sail:128)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:128)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(28),model/riscv_regs.sail:129)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x28"),model/riscv_regs.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(29),model/riscv_regs.sail:130)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x29"),model/riscv_regs.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(30),model/riscv_regs.sail:131)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x30"),model/riscv_regs.sail:131)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:131)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(31),model/riscv_regs.sail:132)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x31"),model/riscv_regs.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)),Unknown))]),Unknown)),E_aux(E_assert(E_aux(E_lit(L_aux(L_false,model/riscv_regs.sail:133)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("invalid register number"),model/riscv_regs.sail:133)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("neq_int"),../sail/lib/flow.sail:44),[(E_aux(E_id(Id_aux(Id("r"),model/riscv_regs.sail:135)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_regs.sail:135)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:32),[(A_aux(A_bool(NC_aux(NC_not_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/flow.sail:32)),../sail/lib/flow.sail:32))]),../sail/lib/flow.sail:32)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("rvfi_wX"),model/riscv_regs.sail:136),[(E_aux(E_id(Id_aux(Id("r"),model/riscv_regs.sail:136)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("in_v"),model/riscv_regs.sail:136)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:93)),model/riscv_regs.sail:93)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_reg"),model/riscv_regs.sail:137),[(E_aux(E_lit(L_aux(L_unit,model/riscv_regs.sail:137)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:106)),model/prelude.sail:106)),E_aux(E_app(Id_aux(Id("print_reg"),model/riscv_regs.sail:138),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("x"),model/riscv_regs.sail:138)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_int"),model/riscv_regs.sail:138),[(E_aux(E_id(Id_aux(Id("r"),model/riscv_regs.sail:138)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:53)),model/prelude.sail:53)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" <- "),model/riscv_regs.sail:138)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("RegStr"),model/riscv_regs.sail:138),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_regs.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_reg_type.sail:8)),model/riscv_reg_type.sail:8)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:101)),model/prelude.sail:101)),E_aux(E_lit(L_aux(L_unit,model/riscv_regs.sail:138)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)),E_aux(E_lit(L_aux(L_unit,model/riscv_regs.sail:139)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:97));(BE_aux(BE_escape,model/riscv_regs.sail:97))]),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("rX_bits"),model/riscv_regs.sail:142),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_regs.sail:142),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:142)),model/riscv_regs.sail:142))]),model/riscv_regs.sail:142))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_regs.sail:142)),model/riscv_regs.sail:142),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_regs.sail:45));(BE_aux(BE_rreg,model/riscv_regs.sail:45))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_regs.sail:142)),model/riscv_regs.sail:142)),model/riscv_regs.sail:142),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("rX_bits"),model/riscv_regs.sail:142),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_regs.sail:142),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:142)),model/riscv_regs.sail:142))]),model/riscv_regs.sail:142),P_aux(P_id(Id_aux(Id("i"),model/riscv_regs.sail:142)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:142)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:142)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX"),model/riscv_regs.sail:142),[(E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_regs.sail:142),[(E_aux(E_id(Id_aux(Id("i"),model/riscv_regs.sail:142)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:142)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:142)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:142)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("wX_bits"),model/riscv_regs.sail:144),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_regs.sail:144),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:144)),model/riscv_regs.sail:144))]),model/riscv_regs.sail:144));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_regs.sail:97));(BE_aux(BE_wreg,model/riscv_regs.sail:97))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)),model/riscv_regs.sail:144),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("wX_bits"),model/riscv_regs.sail:144),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_regs.sail:144),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:144)),model/riscv_regs.sail:144))]),model/riscv_regs.sail:144),P_aux(P_id(Id_aux(Id("i"),model/riscv_regs.sail:144)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:144)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:144)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144),P_aux(P_id(Id_aux(Id("data"),model/riscv_regs.sail:144)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:144)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_regs.sail:144-146)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX"),model/riscv_regs.sail:145),[(E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_regs.sail:145),[(E_aux(E_id(Id_aux(Id("i"),model/riscv_regs.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:144)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:144)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)));(E_aux(E_id(Id_aux(Id("data"),model/riscv_regs.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:97)),model/riscv_regs.sail:97)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:144)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_overload(Id_aux(Id("X"),model/riscv_regs.sail:148),[(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148));(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148));(Id_aux(Id("rX"),model/riscv_regs.sail:148));(Id_aux(Id("wX"),model/riscv_regs.sail:148))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("reg_name_abi"),model/riscv_regs.sail:152),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:152)),model/riscv_regs.sail:152),Effect_aux(Effect_set([]),model/riscv_regs.sail:152)),model/riscv_regs.sail:152)),model/riscv_regs.sail:152))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("reg_name_abi"),model/riscv_regs.sail:154),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("r"),model/riscv_regs.sail:154)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("r"),model/riscv_regs.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("00000"),model/riscv_regs.sail:156)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("zero"),model/riscv_regs.sail:156)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("00001"),model/riscv_regs.sail:157)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("ra"),model/riscv_regs.sail:157)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("00010"),model/riscv_regs.sail:158)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("sp"),model/riscv_regs.sail:158)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("00011"),model/riscv_regs.sail:159)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("gp"),model/riscv_regs.sail:159)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("00100"),model/riscv_regs.sail:160)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("tp"),model/riscv_regs.sail:160)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("00101"),model/riscv_regs.sail:161)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("t0"),model/riscv_regs.sail:161)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("00110"),model/riscv_regs.sail:162)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("t1"),model/riscv_regs.sail:162)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("00111"),model/riscv_regs.sail:163)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("t2"),model/riscv_regs.sail:163)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("01000"),model/riscv_regs.sail:164)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("fp"),model/riscv_regs.sail:164)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("01001"),model/riscv_regs.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("s1"),model/riscv_regs.sail:165)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("01010"),model/riscv_regs.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("a0"),model/riscv_regs.sail:166)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("01011"),model/riscv_regs.sail:167)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("a1"),model/riscv_regs.sail:167)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("01100"),model/riscv_regs.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("a2"),model/riscv_regs.sail:168)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("01101"),model/riscv_regs.sail:169)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("a3"),model/riscv_regs.sail:169)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("01110"),model/riscv_regs.sail:170)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("a4"),model/riscv_regs.sail:170)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("01111"),model/riscv_regs.sail:171)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("a5"),model/riscv_regs.sail:171)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("10000"),model/riscv_regs.sail:172)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("a6"),model/riscv_regs.sail:172)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("10001"),model/riscv_regs.sail:173)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("a7"),model/riscv_regs.sail:173)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("10010"),model/riscv_regs.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("s2"),model/riscv_regs.sail:174)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("10011"),model/riscv_regs.sail:175)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("s3"),model/riscv_regs.sail:175)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("10100"),model/riscv_regs.sail:176)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("s4"),model/riscv_regs.sail:176)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("10101"),model/riscv_regs.sail:177)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("s5"),model/riscv_regs.sail:177)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("10110"),model/riscv_regs.sail:178)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("s6"),model/riscv_regs.sail:178)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("10111"),model/riscv_regs.sail:179)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("s7"),model/riscv_regs.sail:179)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("11000"),model/riscv_regs.sail:180)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("s8"),model/riscv_regs.sail:180)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("11001"),model/riscv_regs.sail:181)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("s9"),model/riscv_regs.sail:181)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("11010"),model/riscv_regs.sail:182)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("s10"),model/riscv_regs.sail:182)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("11011"),model/riscv_regs.sail:183)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("s11"),model/riscv_regs.sail:183)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("11100"),model/riscv_regs.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("t3"),model/riscv_regs.sail:184)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("11101"),model/riscv_regs.sail:185)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("t4"),model/riscv_regs.sail:185)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("11110"),model/riscv_regs.sail:186)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("t5"),model/riscv_regs.sail:186)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("11111"),model/riscv_regs.sail:187)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("t6"),model/riscv_regs.sail:187)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:152)),model/riscv_regs.sail:152)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:152)),model/riscv_regs.sail:152))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:152)),model/riscv_regs.sail:152),Effect_aux(Effect_set([]),model/riscv_regs.sail:152)),model/riscv_regs.sail:152)))]),None)));(DEF_overload(Id_aux(Id("to_str"),model/riscv_regs.sail:191),[(Id_aux(Id("reg_name_abi"),model/riscv_regs.sail:191))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("reg_name"),model/riscv_regs.sail:195),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("reg_name"),model/riscv_regs.sail:196),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_regs.sail:197)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("zero"),model/riscv_regs.sail:197)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("00001"),model/riscv_regs.sail:198)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("ra"),model/riscv_regs.sail:198)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("00010"),model/riscv_regs.sail:199)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sp"),model/riscv_regs.sail:199)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("00011"),model/riscv_regs.sail:200)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("gp"),model/riscv_regs.sail:200)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("00100"),model/riscv_regs.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("tp"),model/riscv_regs.sail:201)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("00101"),model/riscv_regs.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("t0"),model/riscv_regs.sail:202)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("00110"),model/riscv_regs.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("t1"),model/riscv_regs.sail:203)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("00111"),model/riscv_regs.sail:204)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("t2"),model/riscv_regs.sail:204)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("01000"),model/riscv_regs.sail:205)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("fp"),model/riscv_regs.sail:205)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("01001"),model/riscv_regs.sail:206)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("s1"),model/riscv_regs.sail:206)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("01010"),model/riscv_regs.sail:207)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("a0"),model/riscv_regs.sail:207)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("01011"),model/riscv_regs.sail:208)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("a1"),model/riscv_regs.sail:208)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("01100"),model/riscv_regs.sail:209)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("a2"),model/riscv_regs.sail:209)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("01101"),model/riscv_regs.sail:210)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("a3"),model/riscv_regs.sail:210)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("01110"),model/riscv_regs.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("a4"),model/riscv_regs.sail:211)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("01111"),model/riscv_regs.sail:212)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("a5"),model/riscv_regs.sail:212)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("10000"),model/riscv_regs.sail:213)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("a6"),model/riscv_regs.sail:213)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("10001"),model/riscv_regs.sail:214)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("a7"),model/riscv_regs.sail:214)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("10010"),model/riscv_regs.sail:215)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("s2"),model/riscv_regs.sail:215)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("10011"),model/riscv_regs.sail:216)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("s3"),model/riscv_regs.sail:216)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("10100"),model/riscv_regs.sail:217)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("s4"),model/riscv_regs.sail:217)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("10101"),model/riscv_regs.sail:218)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("s5"),model/riscv_regs.sail:218)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("10110"),model/riscv_regs.sail:219)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("s6"),model/riscv_regs.sail:219)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("10111"),model/riscv_regs.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("s7"),model/riscv_regs.sail:220)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("11000"),model/riscv_regs.sail:221)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("s8"),model/riscv_regs.sail:221)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("11001"),model/riscv_regs.sail:222)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("s9"),model/riscv_regs.sail:222)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("11010"),model/riscv_regs.sail:223)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("s10"),model/riscv_regs.sail:223)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("11011"),model/riscv_regs.sail:224)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("s11"),model/riscv_regs.sail:224)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("11100"),model/riscv_regs.sail:225)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("t3"),model/riscv_regs.sail:225)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("11101"),model/riscv_regs.sail:226)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("t4"),model/riscv_regs.sail:226)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("11110"),model/riscv_regs.sail:227)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("t5"),model/riscv_regs.sail:227)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("11111"),model/riscv_regs.sail:228)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("t6"),model/riscv_regs.sail:228)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)),model/riscv_regs.sail:195)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("creg_name"),model/riscv_regs.sail:231),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("creg_name"),model/riscv_regs.sail:231),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_regs.sail:231),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),model/riscv_regs.sail:231))]),model/riscv_regs.sail:231),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)),model/riscv_regs.sail:231),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_regs.sail:232)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("s0"),model/riscv_regs.sail:232)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("001"),model/riscv_regs.sail:233)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("s1"),model/riscv_regs.sail:233)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("010"),model/riscv_regs.sail:234)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("a0"),model/riscv_regs.sail:234)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("011"),model/riscv_regs.sail:235)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("a1"),model/riscv_regs.sail:235)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_regs.sail:236)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("a2"),model/riscv_regs.sail:236)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("101"),model/riscv_regs.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("a3"),model/riscv_regs.sail:237)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("110"),model/riscv_regs.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("a4"),model/riscv_regs.sail:238)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("111"),model/riscv_regs.sail:239)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("a5"),model/riscv_regs.sail:239)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)),model/riscv_regs.sail:231)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("init_base_regs"),model/riscv_regs.sail:242),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:242)),model/riscv_regs.sail:242))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:242)),model/riscv_regs.sail:242),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:242))]),model/riscv_regs.sail:242)),model/riscv_regs.sail:242)),model/riscv_regs.sail:242))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("init_base_regs"),model/riscv_regs.sail:243),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_regs.sail:243)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x1"),model/riscv_regs.sail:244)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:244)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x2"),model/riscv_regs.sail:245)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:245)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x3"),model/riscv_regs.sail:246)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:246)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x4"),model/riscv_regs.sail:247)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:247)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x5"),model/riscv_regs.sail:248)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:248)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x6"),model/riscv_regs.sail:249)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:249)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x7"),model/riscv_regs.sail:250)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:250)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x8"),model/riscv_regs.sail:251)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:251)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x9"),model/riscv_regs.sail:252)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:252)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x10"),model/riscv_regs.sail:253)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:253)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x11"),model/riscv_regs.sail:254)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:254)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x12"),model/riscv_regs.sail:255)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:255)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x13"),model/riscv_regs.sail:256)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:256)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x14"),model/riscv_regs.sail:257)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:257)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x15"),model/riscv_regs.sail:258)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:258)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x16"),model/riscv_regs.sail:259)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:259)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x17"),model/riscv_regs.sail:260)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:260)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x18"),model/riscv_regs.sail:261)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:261)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x19"),model/riscv_regs.sail:262)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:262)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x20"),model/riscv_regs.sail:263)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:263)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x21"),model/riscv_regs.sail:264)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:264)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x22"),model/riscv_regs.sail:265)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:265)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x23"),model/riscv_regs.sail:266)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:266)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x24"),model/riscv_regs.sail:267)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:267)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x25"),model/riscv_regs.sail:268)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:268)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x26"),model/riscv_regs.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x27"),model/riscv_regs.sail:270)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:270)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x28"),model/riscv_regs.sail:271)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:271)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x29"),model/riscv_regs.sail:272)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:272)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x30"),model/riscv_regs.sail:273)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:273)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("x31"),model/riscv_regs.sail:274)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("zero_reg"),model/riscv_regs.sail:274)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:242)),model/riscv_regs.sail:242))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:242)),model/riscv_regs.sail:242))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:242)),model/riscv_regs.sail:242),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_regs.sail:242))]),model/riscv_regs.sail:242)),model/riscv_regs.sail:242)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("get_arch_pc"),model/riscv_pc_access.sail:9),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:9)),model/riscv_pc_access.sail:9))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pc_access.sail:9))]),model/riscv_pc_access.sail:9)),model/riscv_pc_access.sail:9)),model/riscv_pc_access.sail:9))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("get_arch_pc"),model/riscv_pc_access.sail:10),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_pc_access.sail:10)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("PC"),model/riscv_pc_access.sail:10)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:9)),model/riscv_pc_access.sail:9))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pc_access.sail:9))]),model/riscv_pc_access.sail:9)),model/riscv_pc_access.sail:9)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("get_next_pc"),model/riscv_pc_access.sail:12),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:12)),model/riscv_pc_access.sail:12))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pc_access.sail:12))]),model/riscv_pc_access.sail:12)),model/riscv_pc_access.sail:12)),model/riscv_pc_access.sail:12))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("get_next_pc"),model/riscv_pc_access.sail:13),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_pc_access.sail:13)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("nextPC"),model/riscv_pc_access.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:12)),model/riscv_pc_access.sail:12))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pc_access.sail:12))]),model/riscv_pc_access.sail:12)),model/riscv_pc_access.sail:12)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("set_next_pc"),model/riscv_pc_access.sail:15),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pc_access.sail:15))]),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("set_next_pc"),model/riscv_pc_access.sail:16),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("pc"),model/riscv_pc_access.sail:16)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("nextPC"),model/riscv_pc_access.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("pc"),model/riscv_pc_access.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pc_access.sail:15))]),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("tick_pc"),model/riscv_pc_access.sail:20),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:20)),model/riscv_pc_access.sail:20))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:20)),model/riscv_pc_access.sail:20),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pc_access.sail:20));(BE_aux(BE_wreg,model/riscv_pc_access.sail:20))]),model/riscv_pc_access.sail:20)),model/riscv_pc_access.sail:20)),model/riscv_pc_access.sail:20))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("tick_pc"),model/riscv_pc_access.sail:21),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_pc_access.sail:21)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("PC"),model/riscv_pc_access.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("nextPC"),model/riscv_pc_access.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:20)),model/riscv_pc_access.sail:20))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:20)),model/riscv_pc_access.sail:20))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:20)),model/riscv_pc_access.sail:20),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pc_access.sail:20));(BE_aux(BE_wreg,model/riscv_pc_access.sail:20))]),model/riscv_pc_access.sail:20)),model/riscv_pc_access.sail:20)))]),None)));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:5))]),model/riscv_sys_regs.sail:5),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:5))]),model/riscv_sys_regs.sail:5),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5),Id_aux(Id("cur_privilege"),model/riscv_sys_regs.sail:5)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:9))]),model/riscv_sys_regs.sail:9),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:9))]),model/riscv_sys_regs.sail:9),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:9)),model/riscv_sys_regs.sail:9),Id_aux(Id("cur_inst"),model/riscv_sys_regs.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Misa"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Misa"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_Misa"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_Misa"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_Misa_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_Misa_bits"),:1));(Id_aux(Id("_set_Misa_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_MXL"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_MXL"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(62),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(62),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_MXL"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_MXL"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(62),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_MXL"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_MXL"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(62),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_MXL"),:1),[(Id_aux(Id("_update_Misa_MXL"),:1))]));(DEF_overload(Id_aux(Id("_mod_MXL"),:1),[(Id_aux(Id("_get_Misa_MXL"),:1));(Id_aux(Id("_set_Misa_MXL"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_Z"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_Z"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(25),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(25),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(25),Unknown),Nexp_aux(Nexp_constant(25),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_Z"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_Z"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(25),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(25),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_Z"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_Z"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(25),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(25),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(25),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Z"),:1),[(Id_aux(Id("_update_Misa_Z"),:1))]));(DEF_overload(Id_aux(Id("_mod_Z"),:1),[(Id_aux(Id("_get_Misa_Z"),:1));(Id_aux(Id("_set_Misa_Z"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_Y"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_Y"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(24),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(24),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(24),Unknown),Nexp_aux(Nexp_constant(24),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_Y"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_Y"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(24),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(24),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_Y"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_Y"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(24),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(24),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Y"),:1),[(Id_aux(Id("_update_Misa_Y"),:1))]));(DEF_overload(Id_aux(Id("_mod_Y"),:1),[(Id_aux(Id("_get_Misa_Y"),:1));(Id_aux(Id("_set_Misa_Y"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_X"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_X"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(23),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(23),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(23),Unknown),Nexp_aux(Nexp_constant(23),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_X"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_X"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(23),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(23),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_X"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_X"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(23),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(23),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_X"),:1),[(Id_aux(Id("_update_Misa_X"),:1))]));(DEF_overload(Id_aux(Id("_mod_X"),:1),[(Id_aux(Id("_get_Misa_X"),:1));(Id_aux(Id("_set_Misa_X"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_W"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_W"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(22),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(22),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(22),Unknown),Nexp_aux(Nexp_constant(22),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_W"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_W"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(22),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(22),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_W"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_W"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(22),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(22),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_W"),:1),[(Id_aux(Id("_update_Misa_W"),:1))]));(DEF_overload(Id_aux(Id("_mod_W"),:1),[(Id_aux(Id("_get_Misa_W"),:1));(Id_aux(Id("_set_Misa_W"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_V"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_V"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(21),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(21),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(21),Unknown),Nexp_aux(Nexp_constant(21),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_V"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_V"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(21),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(21),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_V"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_V"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(21),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(21),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_V"),:1),[(Id_aux(Id("_update_Misa_V"),:1))]));(DEF_overload(Id_aux(Id("_mod_V"),:1),[(Id_aux(Id("_get_Misa_V"),:1));(Id_aux(Id("_set_Misa_V"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_U"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_U"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(20),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(20),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(20),Unknown),Nexp_aux(Nexp_constant(20),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_U"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_U"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(20),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(20),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_U"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_U"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(20),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(20),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_U"),:1),[(Id_aux(Id("_update_Misa_U"),:1))]));(DEF_overload(Id_aux(Id("_mod_U"),:1),[(Id_aux(Id("_get_Misa_U"),:1));(Id_aux(Id("_set_Misa_U"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_T"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_T"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(19),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(19),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(19),Unknown),Nexp_aux(Nexp_constant(19),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_T"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_T"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(19),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(19),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_T"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_T"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(19),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(19),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_T"),:1),[(Id_aux(Id("_update_Misa_T"),:1))]));(DEF_overload(Id_aux(Id("_mod_T"),:1),[(Id_aux(Id("_get_Misa_T"),:1));(Id_aux(Id("_set_Misa_T"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_S"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_S"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(18),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(18),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(18),Unknown),Nexp_aux(Nexp_constant(18),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_S"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_S"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(18),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(18),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_S"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_S"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(18),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(18),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_S"),:1),[(Id_aux(Id("_update_Misa_S"),:1))]));(DEF_overload(Id_aux(Id("_mod_S"),:1),[(Id_aux(Id("_get_Misa_S"),:1));(Id_aux(Id("_set_Misa_S"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_R"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_R"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(17),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(17),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(17),Unknown),Nexp_aux(Nexp_constant(17),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_R"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_R"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(17),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(17),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_R"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_R"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(17),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(17),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_R"),:1),[(Id_aux(Id("_update_Misa_R"),:1))]));(DEF_overload(Id_aux(Id("_mod_R"),:1),[(Id_aux(Id("_get_Misa_R"),:1));(Id_aux(Id("_set_Misa_R"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_Q"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_Q"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(16),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(16),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(16),Unknown),Nexp_aux(Nexp_constant(16),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_Q"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_Q"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(16),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(16),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_Q"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_Q"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(16),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(16),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Q"),:1),[(Id_aux(Id("_update_Misa_Q"),:1))]));(DEF_overload(Id_aux(Id("_mod_Q"),:1),[(Id_aux(Id("_get_Misa_Q"),:1));(Id_aux(Id("_set_Misa_Q"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_P"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_P"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(15),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(15),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(15),Unknown),Nexp_aux(Nexp_constant(15),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_P"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_P"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(15),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(15),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_P"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_P"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(15),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(15),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_P"),:1),[(Id_aux(Id("_update_Misa_P"),:1))]));(DEF_overload(Id_aux(Id("_mod_P"),:1),[(Id_aux(Id("_get_Misa_P"),:1));(Id_aux(Id("_set_Misa_P"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_O"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_O"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(14),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(14),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(14),Unknown),Nexp_aux(Nexp_constant(14),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_O"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_O"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(14),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(14),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_O"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_O"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(14),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(14),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_O"),:1),[(Id_aux(Id("_update_Misa_O"),:1))]));(DEF_overload(Id_aux(Id("_mod_O"),:1),[(Id_aux(Id("_get_Misa_O"),:1));(Id_aux(Id("_set_Misa_O"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_N"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_N"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(13),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(13),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(13),Unknown),Nexp_aux(Nexp_constant(13),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_N"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_N"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(13),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(13),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_N"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_N"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(13),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(13),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_N"),:1),[(Id_aux(Id("_update_Misa_N"),:1))]));(DEF_overload(Id_aux(Id("_mod_N"),:1),[(Id_aux(Id("_get_Misa_N"),:1));(Id_aux(Id("_set_Misa_N"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_M"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_M"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(12),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(12),Unknown),Nexp_aux(Nexp_constant(12),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_M"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_M"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(12),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_M"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_M"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(12),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_M"),:1),[(Id_aux(Id("_update_Misa_M"),:1))]));(DEF_overload(Id_aux(Id("_mod_M"),:1),[(Id_aux(Id("_get_Misa_M"),:1));(Id_aux(Id("_set_Misa_M"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_L"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_L"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(11),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(11),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_L"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_L"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_L"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_L"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_L"),:1),[(Id_aux(Id("_update_Misa_L"),:1))]));(DEF_overload(Id_aux(Id("_mod_L"),:1),[(Id_aux(Id("_get_Misa_L"),:1));(Id_aux(Id("_set_Misa_L"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_K"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_K"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(10),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(10),Unknown),Nexp_aux(Nexp_constant(10),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_K"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_K"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(10),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_K"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_K"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(10),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_K"),:1),[(Id_aux(Id("_update_Misa_K"),:1))]));(DEF_overload(Id_aux(Id("_mod_K"),:1),[(Id_aux(Id("_get_Misa_K"),:1));(Id_aux(Id("_set_Misa_K"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_J"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_J"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(9),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(9),Unknown),Nexp_aux(Nexp_constant(9),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_J"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_J"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(9),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_J"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_J"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(9),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_J"),:1),[(Id_aux(Id("_update_Misa_J"),:1))]));(DEF_overload(Id_aux(Id("_mod_J"),:1),[(Id_aux(Id("_get_Misa_J"),:1));(Id_aux(Id("_set_Misa_J"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_I"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_I"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(8),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_I"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_I"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_I"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_I"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_I"),:1),[(Id_aux(Id("_update_Misa_I"),:1))]));(DEF_overload(Id_aux(Id("_mod_I"),:1),[(Id_aux(Id("_get_Misa_I"),:1));(Id_aux(Id("_set_Misa_I"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_H"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_H"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(7),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_H"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_H"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_H"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_H"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_H"),:1),[(Id_aux(Id("_update_Misa_H"),:1))]));(DEF_overload(Id_aux(Id("_mod_H"),:1),[(Id_aux(Id("_get_Misa_H"),:1));(Id_aux(Id("_set_Misa_H"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_G"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_G"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(6),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(6),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(6),Unknown),Nexp_aux(Nexp_constant(6),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_G"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_G"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(6),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(6),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_G"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_G"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(6),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(6),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_G"),:1),[(Id_aux(Id("_update_Misa_G"),:1))]));(DEF_overload(Id_aux(Id("_mod_G"),:1),[(Id_aux(Id("_get_Misa_G"),:1));(Id_aux(Id("_set_Misa_G"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_F"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_F"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(5),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_F"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_F"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_F"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_F"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_F"),:1),[(Id_aux(Id("_update_Misa_F"),:1))]));(DEF_overload(Id_aux(Id("_mod_F"),:1),[(Id_aux(Id("_get_Misa_F"),:1));(Id_aux(Id("_set_Misa_F"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_E"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_E"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_E"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_E"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_E"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_E"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_E"),:1),[(Id_aux(Id("_update_Misa_E"),:1))]));(DEF_overload(Id_aux(Id("_mod_E"),:1),[(Id_aux(Id("_get_Misa_E"),:1));(Id_aux(Id("_set_Misa_E"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_D"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_D"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(3),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_D"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_D"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_D"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_D"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_D"),:1),[(Id_aux(Id("_update_Misa_D"),:1))]));(DEF_overload(Id_aux(Id("_mod_D"),:1),[(Id_aux(Id("_get_Misa_D"),:1));(Id_aux(Id("_set_Misa_D"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_C"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_C"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(2),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_C"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_C"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_C"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_C"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_C"),:1),[(Id_aux(Id("_update_Misa_C"),:1))]));(DEF_overload(Id_aux(Id("_mod_C"),:1),[(Id_aux(Id("_get_Misa_C"),:1));(Id_aux(Id("_set_Misa_C"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_B"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_B"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_B"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_B"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_B"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_B"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_B"),:1),[(Id_aux(Id("_update_Misa_B"),:1))]));(DEF_overload(Id_aux(Id("_mod_B"),:1),[(Id_aux(Id("_get_Misa_B"),:1));(Id_aux(Id("_set_Misa_B"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Misa_A"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Misa_A"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Misa_A"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Misa_A"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Misa_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Misa_A"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Misa_A"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Misa_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),Id_aux(Id("Misa_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_A"),:1),[(Id_aux(Id("_update_Misa_A"),:1))]));(DEF_overload(Id_aux(Id("_mod_A"),:1),[(Id_aux(Id("_get_Misa_A"),:1));(Id_aux(Id("_set_Misa_A"),:1))]));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),model/riscv_sys_regs.sail:71),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:71))]),model/riscv_sys_regs.sail:71),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71),Id_aux(Id("misa"),model/riscv_sys_regs.sail:71)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sys_enable_writable_misa"),model/riscv_sys_regs.sail:74),[c: "sys_enable_writable_misa",ocaml: "Platform.enable_writable_misa",_: "sys_enable_writable_misa"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_regs.sail:74)),model/riscv_sys_regs.sail:74))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:74)),model/riscv_sys_regs.sail:74),Effect_aux(Effect_set([]),model/riscv_sys_regs.sail:74)),model/riscv_sys_regs.sail:74)),model/riscv_sys_regs.sail:74))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("sys_enable_rvc"),model/riscv_sys_regs.sail:76),[c: "sys_enable_rvc",ocaml: "Platform.enable_rvc",_: "sys_enable_rvc"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_regs.sail:76)),model/riscv_sys_regs.sail:76))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:76)),model/riscv_sys_regs.sail:76),Effect_aux(Effect_set([]),model/riscv_sys_regs.sail:76)),model/riscv_sys_regs.sail:76)),model/riscv_sys_regs.sail:76))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_veto_disable_C"),model/riscv_sys_regs.sail:81),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_regs.sail:81)),model/riscv_sys_regs.sail:81))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:81)),model/riscv_sys_regs.sail:81),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:81))]),model/riscv_sys_regs.sail:81)),model/riscv_sys_regs.sail:81)),model/riscv_sys_regs.sail:81))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_misa"),model/riscv_sys_regs.sail:84),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84))],Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_regs.sail:4))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_misa"),model/riscv_sys_regs.sail:84),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:84)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84))),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:84-94)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("sys_enable_writable_misa"),model/riscv_sys_regs.sail:85),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_regs.sail:85)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:74)),model/riscv_sys_regs.sail:74)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:87)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Misa"),model/riscv_sys_regs.sail:87),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:87)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Misa_C"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:89)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_regs.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_bit"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("nextPC"),model/riscv_sys_regs.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_sys_regs.sail:89)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)));(E_aux(E_lit(L_aux(L_one,model/riscv_sys_regs.sail:89)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14)));(E_aux(E_app(Id_aux(Id("ext_veto_disable_C"),model/riscv_sys_regs.sail:89),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_regs.sail:89)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:81)),model/riscv_sys_regs.sail:81)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex1906#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex1907#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex1906#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex1907#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex1912#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex1910#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex1911#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex1912#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex1910#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex1911#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("sys_enable_rvc"),model/riscv_sys_regs.sail:89),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_regs.sail:89)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:76)),model/riscv_sys_regs.sail:76)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex1919#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex1919#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex1916#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex1917#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex1918#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex1921#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex1916#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex1917#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex1918#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex1921#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:90)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84)),E_aux(E_app(Id_aux(Id("_update_Misa_C"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:91)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84)));(E_aux(E_app(Id_aux(Id("_get_Misa_C"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:91)),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84))),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:93)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84))),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("haveAtomics"),model/riscv_sys_regs.sail:98),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:98)),model/riscv_sys_regs.sail:98),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:98)),model/riscv_sys_regs.sail:98)),model/riscv_sys_regs.sail:98),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("haveAtomics"),model/riscv_sys_regs.sail:98),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_regs.sail:98)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Misa_A"),:1),[(E_aux(E_id(Id_aux(Id("misa"),model/riscv_sys_regs.sail:98)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:98)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:98)),model/riscv_sys_regs.sail:98),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("haveRVC"),model/riscv_sys_regs.sail:99),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:99)),model/riscv_sys_regs.sail:99),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:99)),model/riscv_sys_regs.sail:99)),model/riscv_sys_regs.sail:99),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("haveRVC"),model/riscv_sys_regs.sail:99),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_regs.sail:99)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Misa_C"),:1),[(E_aux(E_id(Id_aux(Id("misa"),model/riscv_sys_regs.sail:99)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:99)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:99)),model/riscv_sys_regs.sail:99),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("haveMulDiv"),model/riscv_sys_regs.sail:100),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:100)),model/riscv_sys_regs.sail:100),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:100)),model/riscv_sys_regs.sail:100)),model/riscv_sys_regs.sail:100),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("haveMulDiv"),model/riscv_sys_regs.sail:100),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_regs.sail:100)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Misa_M"),:1),[(E_aux(E_id(Id_aux(Id("misa"),model/riscv_sys_regs.sail:100)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:100)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:100)),model/riscv_sys_regs.sail:100),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("haveSupMode"),model/riscv_sys_regs.sail:101),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("haveSupMode"),model/riscv_sys_regs.sail:101),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_regs.sail:101)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Misa_S"),:1),[(E_aux(E_id(Id_aux(Id("misa"),model/riscv_sys_regs.sail:101)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:101)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("haveUsrMode"),model/riscv_sys_regs.sail:102),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("haveUsrMode"),model/riscv_sys_regs.sail:102),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_regs.sail:102)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Misa_U"),:1),[(E_aux(E_id(Id_aux(Id("misa"),model/riscv_sys_regs.sail:102)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:102)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("haveNExt"),model/riscv_sys_regs.sail:103),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:103)),model/riscv_sys_regs.sail:103),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:103)),model/riscv_sys_regs.sail:103)),model/riscv_sys_regs.sail:103),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("haveNExt"),model/riscv_sys_regs.sail:103),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_regs.sail:103)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Misa_N"),:1),[(E_aux(E_id(Id_aux(Id("misa"),model/riscv_sys_regs.sail:103)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:103)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:103)),model/riscv_sys_regs.sail:103),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Mstatus"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Mstatus"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_Mstatus"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_Mstatus"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_Mstatus_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_Mstatus_bits"),:1));(Id_aux(Id("_set_Mstatus_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_SD"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_SD"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(63),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_SD"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_SD"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_SD"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_SD"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SD"),:1),[(Id_aux(Id("_update_Mstatus_SD"),:1))]));(DEF_overload(Id_aux(Id("_mod_SD"),:1),[(Id_aux(Id("_get_Mstatus_SD"),:1));(Id_aux(Id("_set_Mstatus_SD"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_TSR"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_TSR"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(22),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(22),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(22),Unknown),Nexp_aux(Nexp_constant(22),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_TSR"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_TSR"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(22),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(22),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_TSR"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_TSR"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(22),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(22),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_TSR"),:1),[(Id_aux(Id("_update_Mstatus_TSR"),:1))]));(DEF_overload(Id_aux(Id("_mod_TSR"),:1),[(Id_aux(Id("_get_Mstatus_TSR"),:1));(Id_aux(Id("_set_Mstatus_TSR"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_TW"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_TW"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(21),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(21),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(21),Unknown),Nexp_aux(Nexp_constant(21),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_TW"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_TW"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(21),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(21),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_TW"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_TW"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(21),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(21),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_TW"),:1),[(Id_aux(Id("_update_Mstatus_TW"),:1))]));(DEF_overload(Id_aux(Id("_mod_TW"),:1),[(Id_aux(Id("_get_Mstatus_TW"),:1));(Id_aux(Id("_set_Mstatus_TW"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_TVM"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_TVM"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(20),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(20),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(20),Unknown),Nexp_aux(Nexp_constant(20),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_TVM"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_TVM"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(20),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(20),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_TVM"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_TVM"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(20),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(20),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_TVM"),:1),[(Id_aux(Id("_update_Mstatus_TVM"),:1))]));(DEF_overload(Id_aux(Id("_mod_TVM"),:1),[(Id_aux(Id("_get_Mstatus_TVM"),:1));(Id_aux(Id("_set_Mstatus_TVM"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_MXR"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_MXR"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(19),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(19),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(19),Unknown),Nexp_aux(Nexp_constant(19),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_MXR"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_MXR"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(19),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(19),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_MXR"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_MXR"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(19),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(19),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_MXR"),:1),[(Id_aux(Id("_update_Mstatus_MXR"),:1))]));(DEF_overload(Id_aux(Id("_mod_MXR"),:1),[(Id_aux(Id("_get_Mstatus_MXR"),:1));(Id_aux(Id("_set_Mstatus_MXR"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_SUM"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_SUM"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(18),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(18),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(18),Unknown),Nexp_aux(Nexp_constant(18),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_SUM"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_SUM"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(18),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(18),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_SUM"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_SUM"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(18),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(18),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SUM"),:1),[(Id_aux(Id("_update_Mstatus_SUM"),:1))]));(DEF_overload(Id_aux(Id("_mod_SUM"),:1),[(Id_aux(Id("_get_Mstatus_SUM"),:1));(Id_aux(Id("_set_Mstatus_SUM"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_MPRV"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_MPRV"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(17),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(17),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(17),Unknown),Nexp_aux(Nexp_constant(17),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_MPRV"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_MPRV"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(17),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(17),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_MPRV"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_MPRV"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(17),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(17),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(17),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_MPRV"),:1),[(Id_aux(Id("_update_Mstatus_MPRV"),:1))]));(DEF_overload(Id_aux(Id("_mod_MPRV"),:1),[(Id_aux(Id("_get_Mstatus_MPRV"),:1));(Id_aux(Id("_set_Mstatus_MPRV"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_XS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_XS"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(16),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(15),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(16),Unknown),Nexp_aux(Nexp_constant(15),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_XS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_XS"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(16),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(15),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_XS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_XS"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(16),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(15),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_XS"),:1),[(Id_aux(Id("_update_Mstatus_XS"),:1))]));(DEF_overload(Id_aux(Id("_mod_XS"),:1),[(Id_aux(Id("_get_Mstatus_XS"),:1));(Id_aux(Id("_set_Mstatus_XS"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_FS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_FS"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(14),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(13),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(14),Unknown),Nexp_aux(Nexp_constant(13),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_FS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_FS"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(14),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(13),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_FS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_FS"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(14),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(13),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_FS"),:1),[(Id_aux(Id("_update_Mstatus_FS"),:1))]));(DEF_overload(Id_aux(Id("_mod_FS"),:1),[(Id_aux(Id("_get_Mstatus_FS"),:1));(Id_aux(Id("_set_Mstatus_FS"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_MPP"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_MPP"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(12),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(11),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(12),Unknown),Nexp_aux(Nexp_constant(11),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_MPP"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_MPP"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(12),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_MPP"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_MPP"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(12),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_MPP"),:1),[(Id_aux(Id("_update_Mstatus_MPP"),:1))]));(DEF_overload(Id_aux(Id("_mod_MPP"),:1),[(Id_aux(Id("_get_Mstatus_MPP"),:1));(Id_aux(Id("_set_Mstatus_MPP"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_SPP"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_SPP"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(8),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_SPP"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_SPP"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_SPP"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_SPP"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SPP"),:1),[(Id_aux(Id("_update_Mstatus_SPP"),:1))]));(DEF_overload(Id_aux(Id("_mod_SPP"),:1),[(Id_aux(Id("_get_Mstatus_SPP"),:1));(Id_aux(Id("_set_Mstatus_SPP"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_MPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_MPIE"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(7),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_MPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_MPIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_MPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_MPIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_MPIE"),:1),[(Id_aux(Id("_update_Mstatus_MPIE"),:1))]));(DEF_overload(Id_aux(Id("_mod_MPIE"),:1),[(Id_aux(Id("_get_Mstatus_MPIE"),:1));(Id_aux(Id("_set_Mstatus_MPIE"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_SPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_SPIE"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(5),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_SPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_SPIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_SPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_SPIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SPIE"),:1),[(Id_aux(Id("_update_Mstatus_SPIE"),:1))]));(DEF_overload(Id_aux(Id("_mod_SPIE"),:1),[(Id_aux(Id("_get_Mstatus_SPIE"),:1));(Id_aux(Id("_set_Mstatus_SPIE"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_UPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_UPIE"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_UPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_UPIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_UPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_UPIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_UPIE"),:1),[(Id_aux(Id("_update_Mstatus_UPIE"),:1))]));(DEF_overload(Id_aux(Id("_mod_UPIE"),:1),[(Id_aux(Id("_get_Mstatus_UPIE"),:1));(Id_aux(Id("_set_Mstatus_UPIE"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_MIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_MIE"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(3),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_MIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_MIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_MIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_MIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_MIE"),:1),[(Id_aux(Id("_update_Mstatus_MIE"),:1))]));(DEF_overload(Id_aux(Id("_mod_MIE"),:1),[(Id_aux(Id("_get_Mstatus_MIE"),:1));(Id_aux(Id("_set_Mstatus_MIE"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_SIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_SIE"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_SIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_SIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_SIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_SIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SIE"),:1),[(Id_aux(Id("_update_Mstatus_SIE"),:1))]));(DEF_overload(Id_aux(Id("_mod_SIE"),:1),[(Id_aux(Id("_get_Mstatus_SIE"),:1));(Id_aux(Id("_set_Mstatus_SIE"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mstatus_UIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mstatus_UIE"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mstatus_UIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mstatus_UIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mstatus_UIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mstatus_UIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),Id_aux(Id("Mstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_UIE"),:1),[(Id_aux(Id("_update_Mstatus_UIE"),:1))]));(DEF_overload(Id_aux(Id("_mod_UIE"),:1),[(Id_aux(Id("_get_Mstatus_UIE"),:1));(Id_aux(Id("_set_Mstatus_UIE"),:1))]));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:134))]),model/riscv_sys_regs.sail:134),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:134))]),model/riscv_sys_regs.sail:134),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134),Id_aux(Id("mstatus"),model/riscv_sys_regs.sail:134)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("effectivePrivilege"),model/riscv_sys_regs.sail:136),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136))],Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:134))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("effectivePrivilege"),model/riscv_sys_regs.sail:136),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:136)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136),P_aux(P_id(Id_aux(Id("priv"),model/riscv_sys_regs.sail:136)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136))]),model/riscv_sys_regs.sail:136-139)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_MPRV"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:137)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:137)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("privLevel_of_bits"),model/riscv_sys_regs.sail:138),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_MPP"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_regs.sail:138)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:76)),model/riscv_types.sail:76)),E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_sys_regs.sail:139)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136))],Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("get_mstatus_SXL"),model/riscv_sys_regs.sail:141),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:141)),model/riscv_sys_regs.sail:141))],Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_sys_regs.sail:141)),model/riscv_sys_regs.sail:141),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_sys_regs.sail:141)),model/riscv_sys_regs.sail:141)),model/riscv_sys_regs.sail:141),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("get_mstatus_SXL"),model/riscv_sys_regs.sail:141),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:141)),model/riscv_sys_regs.sail:141),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:141)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:141)),model/riscv_sys_regs.sail:141))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:141)),model/riscv_sys_regs.sail:141)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_sys_regs.sail:142)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_app(Id_aux(Id("arch_to_bits"),model/riscv_sys_regs.sail:143),[(E_aux(E_id(Id_aux(Id("RV32"),model/riscv_sys_regs.sail:143)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:144)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:141)),model/riscv_sys_regs.sail:141)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(35),model/riscv_sys_regs.sail:144)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(35),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(34),model/riscv_sys_regs.sail:144)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(35),Unknown),Nexp_aux(Nexp_constant(34),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:141)),model/riscv_sys_regs.sail:141))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("set_mstatus_SXL"),model/riscv_sys_regs.sail:147),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147));(Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("set_mstatus_SXL"),model/riscv_sys_regs.sail:147),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:147)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147),P_aux(P_id(Id_aux(Id("a"),model/riscv_sys_regs.sail:147)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:147-154)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_sys_regs.sail:148)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:149)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:151)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),model/riscv_sys_regs.sail:151),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:151)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(35),model/riscv_sys_regs.sail:151)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(35),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(34),model/riscv_sys_regs.sail:151)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("a"),model/riscv_sys_regs.sail:151)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("Mk_Mstatus"),model/riscv_sys_regs.sail:152),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:152)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("get_mstatus_UXL"),model/riscv_sys_regs.sail:156),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:156)),model/riscv_sys_regs.sail:156))],Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_sys_regs.sail:156)),model/riscv_sys_regs.sail:156),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_sys_regs.sail:156)),model/riscv_sys_regs.sail:156)),model/riscv_sys_regs.sail:156),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("get_mstatus_UXL"),model/riscv_sys_regs.sail:156),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:156)),model/riscv_sys_regs.sail:156),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:156)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:156)),model/riscv_sys_regs.sail:156))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:156)),model/riscv_sys_regs.sail:156)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_sys_regs.sail:157)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_app(Id_aux(Id("arch_to_bits"),model/riscv_sys_regs.sail:158),[(E_aux(E_id(Id_aux(Id("RV32"),model/riscv_sys_regs.sail:158)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:159)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:156)),model/riscv_sys_regs.sail:156)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(33),model/riscv_sys_regs.sail:159)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_sys_regs.sail:159)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(33),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:156)),model/riscv_sys_regs.sail:156))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("set_mstatus_UXL"),model/riscv_sys_regs.sail:162),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162));(Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("set_mstatus_UXL"),model/riscv_sys_regs.sail:162),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:162)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162),P_aux(P_id(Id_aux(Id("a"),model/riscv_sys_regs.sail:162)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:162-169)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_sys_regs.sail:163)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:164)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),model/riscv_sys_regs.sail:166),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:166)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(33),model/riscv_sys_regs.sail:166)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_sys_regs.sail:166)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("a"),model/riscv_sys_regs.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("Mk_Mstatus"),model/riscv_sys_regs.sail:167),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:167)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_mstatus"),model/riscv_sys_regs.sail:171),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_mstatus"),model/riscv_sys_regs.sail:171),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171),P_aux(P_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:171)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:171)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:171-195)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:172)),model/riscv_sys_regs.sail:172),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:172)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:172)),model/riscv_sys_regs.sail:172))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:172)),model/riscv_sys_regs.sail:172)),E_aux(E_app(Id_aux(Id("Mk_Mstatus"),model/riscv_sys_regs.sail:172),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:172)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:175)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Mstatus_XS"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:175)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:172)),model/riscv_sys_regs.sail:172)));(E_aux(E_app(Id_aux(Id("extStatus_to_bits"),model/riscv_sys_regs.sail:175),[(E_aux(E_id(Id_aux(Id("Off"),model/riscv_sys_regs.sail:175)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("dirty"),model/riscv_sys_regs.sail:182)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'_dirty0"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_dirty1"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_app(Id_aux(Id("extStatus_of_bits"),model/riscv_sys_regs.sail:182),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_FS"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:182)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:281)),model/riscv_types.sail:281)));(E_aux(E_id(Id_aux(Id("Dirty"),model/riscv_sys_regs.sail:182)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_app(Id_aux(Id("extStatus_of_bits"),model/riscv_sys_regs.sail:182),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_XS"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:182)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:281)),model/riscv_types.sail:281)));(E_aux(E_id(Id_aux(Id("Dirty"),model/riscv_sys_regs.sail:182)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex1991#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex1992#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex1991#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex1992#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:183)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Mstatus_SD"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:183)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("bool_to_bits"),model/riscv_sys_regs.sail:183),[(E_aux(E_id(Id_aux(Id("dirty"),model/riscv_sys_regs.sail:183)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'_dirty0"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_dirty1"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:186)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147)),E_aux(E_app(Id_aux(Id("set_mstatus_SXL"),model/riscv_sys_regs.sail:186),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:186)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("get_mstatus_SXL"),model/riscv_sys_regs.sail:186),[(E_aux(E_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:186)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:187)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162)),E_aux(E_app(Id_aux(Id("set_mstatus_UXL"),model/riscv_sys_regs.sail:187),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:187)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147)));(E_aux(E_app(Id_aux(Id("get_mstatus_UXL"),model/riscv_sys_regs.sail:187),[(E_aux(E_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:187)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_sys_regs.sail:190),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_regs.sail:190)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex1993#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex1993#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:191)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Mstatus_UPIE"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:191)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_regs.sail:191)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:192)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Mstatus_UIE"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:192)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_regs.sail:192)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:193)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:194)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("cur_Architecture"),model/riscv_sys_regs.sail:199),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:199)),model/riscv_sys_regs.sail:199),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_types.sail:248));(BE_aux(BE_rreg,model/riscv_sys_regs.sail:5))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:199)),model/riscv_sys_regs.sail:199)),model/riscv_sys_regs.sail:199),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("cur_Architecture"),model/riscv_sys_regs.sail:199),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_regs.sail:199)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_sys_regs.sail:200)),model/riscv_sys_regs.sail:200),P_aux(P_id(Id_aux(Id("a"),model/riscv_sys_regs.sail:200)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_sys_regs.sail:201)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_sys_regs.sail:202)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_app(Id_aux(Id("_get_Misa_MXL"),:1),[(E_aux(E_id(Id_aux(Id("misa"),model/riscv_sys_regs.sail:202)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_sys_regs.sail:203)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_app(Id_aux(Id("get_mstatus_SXL"),model/riscv_sys_regs.sail:203),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_regs.sail:203)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("User"),model/riscv_sys_regs.sail:204)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_app(Id_aux(Id("get_mstatus_UXL"),model/riscv_sys_regs.sail:204),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_regs.sail:204)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("architecture"),model/riscv_sys_regs.sail:206),[(E_aux(E_id(Id_aux(Id("a"),model/riscv_sys_regs.sail:206)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_sys_regs.sail:207),[(P_aux(P_id(Id_aux(Id("a"),model/riscv_sys_regs.sail:207)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48)),E_aux(E_id(Id_aux(Id("a"),model/riscv_sys_regs.sail:207)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),../sail/lib/option.sail:10))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_sys_regs.sail:208),[(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_regs.sail:208)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_sys_regs.sail:208),[(E_aux(E_lit(L_aux(L_string("Invalid current architecture"),model/riscv_sys_regs.sail:208)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:199)),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:199)),model/riscv_sys_regs.sail:199)))]),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:199)),model/riscv_sys_regs.sail:199))),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:199)),model/riscv_sys_regs.sail:199)))]),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:199)),model/riscv_sys_regs.sail:199))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:199)),model/riscv_sys_regs.sail:199),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("in32BitMode"),model/riscv_sys_regs.sail:212),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:212)),model/riscv_sys_regs.sail:212),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_types.sail:248));(BE_aux(BE_rreg,model/riscv_sys_regs.sail:5))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:212)),model/riscv_sys_regs.sail:212)),model/riscv_sys_regs.sail:212),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("in32BitMode"),model/riscv_sys_regs.sail:212),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_regs.sail:212)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_app(Id_aux(Id("cur_Architecture"),model/riscv_sys_regs.sail:213),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_regs.sail:213)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:199)),model/riscv_sys_regs.sail:199)));(E_aux(E_id(Id_aux(Id("RV32"),model/riscv_sys_regs.sail:213)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:212)),model/riscv_sys_regs.sail:212))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:212)),model/riscv_sys_regs.sail:212),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Minterrupts"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Minterrupts"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Minterrupts_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_Minterrupts"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_Minterrupts"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Minterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Minterrupts_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Minterrupts_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Minterrupts_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Minterrupts_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Minterrupts_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Minterrupts_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Minterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_Minterrupts_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_Minterrupts_bits"),:1));(Id_aux(Id("_set_Minterrupts_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Minterrupts_MEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Minterrupts_MEI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(11),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(11),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Minterrupts_MEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Minterrupts_MEI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Minterrupts_MEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Minterrupts_MEI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Minterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_MEI"),:1),[(Id_aux(Id("_update_Minterrupts_MEI"),:1))]));(DEF_overload(Id_aux(Id("_mod_MEI"),:1),[(Id_aux(Id("_get_Minterrupts_MEI"),:1));(Id_aux(Id("_set_Minterrupts_MEI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Minterrupts_SEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Minterrupts_SEI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(9),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(9),Unknown),Nexp_aux(Nexp_constant(9),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Minterrupts_SEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Minterrupts_SEI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(9),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Minterrupts_SEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Minterrupts_SEI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Minterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(9),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SEI"),:1),[(Id_aux(Id("_update_Minterrupts_SEI"),:1))]));(DEF_overload(Id_aux(Id("_mod_SEI"),:1),[(Id_aux(Id("_get_Minterrupts_SEI"),:1));(Id_aux(Id("_set_Minterrupts_SEI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Minterrupts_UEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Minterrupts_UEI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(8),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Minterrupts_UEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Minterrupts_UEI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Minterrupts_UEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Minterrupts_UEI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Minterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_UEI"),:1),[(Id_aux(Id("_update_Minterrupts_UEI"),:1))]));(DEF_overload(Id_aux(Id("_mod_UEI"),:1),[(Id_aux(Id("_get_Minterrupts_UEI"),:1));(Id_aux(Id("_set_Minterrupts_UEI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Minterrupts_MTI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Minterrupts_MTI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(7),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Minterrupts_MTI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Minterrupts_MTI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Minterrupts_MTI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Minterrupts_MTI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Minterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_MTI"),:1),[(Id_aux(Id("_update_Minterrupts_MTI"),:1))]));(DEF_overload(Id_aux(Id("_mod_MTI"),:1),[(Id_aux(Id("_get_Minterrupts_MTI"),:1));(Id_aux(Id("_set_Minterrupts_MTI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Minterrupts_STI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Minterrupts_STI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(5),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Minterrupts_STI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Minterrupts_STI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Minterrupts_STI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Minterrupts_STI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Minterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_STI"),:1),[(Id_aux(Id("_update_Minterrupts_STI"),:1))]));(DEF_overload(Id_aux(Id("_mod_STI"),:1),[(Id_aux(Id("_get_Minterrupts_STI"),:1));(Id_aux(Id("_set_Minterrupts_STI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Minterrupts_UTI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Minterrupts_UTI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Minterrupts_UTI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Minterrupts_UTI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Minterrupts_UTI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Minterrupts_UTI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Minterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_UTI"),:1),[(Id_aux(Id("_update_Minterrupts_UTI"),:1))]));(DEF_overload(Id_aux(Id("_mod_UTI"),:1),[(Id_aux(Id("_get_Minterrupts_UTI"),:1));(Id_aux(Id("_set_Minterrupts_UTI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Minterrupts_MSI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Minterrupts_MSI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(3),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Minterrupts_MSI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Minterrupts_MSI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Minterrupts_MSI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Minterrupts_MSI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Minterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_MSI"),:1),[(Id_aux(Id("_update_Minterrupts_MSI"),:1))]));(DEF_overload(Id_aux(Id("_mod_MSI"),:1),[(Id_aux(Id("_get_Minterrupts_MSI"),:1));(Id_aux(Id("_set_Minterrupts_MSI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Minterrupts_SSI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Minterrupts_SSI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Minterrupts_SSI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Minterrupts_SSI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Minterrupts_SSI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Minterrupts_SSI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Minterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SSI"),:1),[(Id_aux(Id("_update_Minterrupts_SSI"),:1))]));(DEF_overload(Id_aux(Id("_mod_SSI"),:1),[(Id_aux(Id("_get_Minterrupts_SSI"),:1));(Id_aux(Id("_set_Minterrupts_SSI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Minterrupts_USI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Minterrupts_USI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Minterrupts_USI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Minterrupts_USI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Minterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Minterrupts_USI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Minterrupts_USI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Minterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),Id_aux(Id("Minterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_USI"),:1),[(Id_aux(Id("_update_Minterrupts_USI"),:1))]));(DEF_overload(Id_aux(Id("_mod_USI"),:1),[(Id_aux(Id("_get_Minterrupts_USI"),:1));(Id_aux(Id("_set_Minterrupts_USI"),:1))]));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:231))]),model/riscv_sys_regs.sail:231),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:231))]),model/riscv_sys_regs.sail:231),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231),Id_aux(Id("mip"),model/riscv_sys_regs.sail:231)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:232))]),model/riscv_sys_regs.sail:232),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:232))]),model/riscv_sys_regs.sail:232),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232),Id_aux(Id("mie"),model/riscv_sys_regs.sail:232)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:233))]),model/riscv_sys_regs.sail:233),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:233))]),model/riscv_sys_regs.sail:233),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233),Id_aux(Id("mideleg"),model/riscv_sys_regs.sail:233)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_mip"),model/riscv_sys_regs.sail:235),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_mip"),model/riscv_sys_regs.sail:235),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235),P_aux(P_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:235)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:235)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:235-248)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:238)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Minterrupts"),model/riscv_sys_regs.sail:238),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:239)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_SEI"),:1),[(E_aux(E_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:239)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SEI"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:239)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:240)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_STI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:240)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_STI"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:240)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:241)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:241)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:241)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_sys_regs.sail:242),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_regs.sail:242)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:243)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:243)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:243)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:244)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:244)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:244)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:245)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:245)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:245)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:246)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:247)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_mie"),model/riscv_sys_regs.sail:250),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_mie"),model/riscv_sys_regs.sail:250),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250),P_aux(P_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:250)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:250)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:250-265)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:251)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Minterrupts"),model/riscv_sys_regs.sail:251),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:251)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:252)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_MEI"),:1),[(E_aux(E_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:252)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_MEI"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:252)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:253)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_MTI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:253)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_MTI"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:253)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:254)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_MSI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:254)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_MSI"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:254)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:255)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_SEI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:255)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SEI"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:255)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:256)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_STI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:256)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_STI"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:256)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:257)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:257)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:257)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_sys_regs.sail:259),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_regs.sail:259)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:260)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:260)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:260)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:261)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:261)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:261)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:262)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:262)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:262)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:263)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:264)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_mideleg"),model/riscv_sys_regs.sail:267),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_mideleg"),model/riscv_sys_regs.sail:267),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267),P_aux(P_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:267)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:267)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:267-275)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:270)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Minterrupts"),model/riscv_sys_regs.sail:270),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:270)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:271)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_MEI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:271)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_regs.sail:271)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:272)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_MTI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:272)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_regs.sail:272)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:273)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_MSI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:273)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_regs.sail:273)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:274)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Medeleg"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Medeleg"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_Medeleg"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_Medeleg"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Medeleg_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Medeleg_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Medeleg_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Medeleg_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Medeleg_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Medeleg_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_Medeleg_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_Medeleg_bits"),:1));(Id_aux(Id("_set_Medeleg_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Medeleg_SAMO_Page_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Medeleg_SAMO_Page_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(15),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(15),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(15),Unknown),Nexp_aux(Nexp_constant(15),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Medeleg_SAMO_Page_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Medeleg_SAMO_Page_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(15),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(15),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Medeleg_SAMO_Page_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Medeleg_SAMO_Page_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(15),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(15),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SAMO_Page_Fault"),:1),[(Id_aux(Id("_update_Medeleg_SAMO_Page_Fault"),:1))]));(DEF_overload(Id_aux(Id("_mod_SAMO_Page_Fault"),:1),[(Id_aux(Id("_get_Medeleg_SAMO_Page_Fault"),:1));(Id_aux(Id("_set_Medeleg_SAMO_Page_Fault"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Medeleg_Load_Page_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Medeleg_Load_Page_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(13),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(13),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(13),Unknown),Nexp_aux(Nexp_constant(13),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Medeleg_Load_Page_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Medeleg_Load_Page_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(13),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(13),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Medeleg_Load_Page_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Medeleg_Load_Page_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(13),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(13),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Load_Page_Fault"),:1),[(Id_aux(Id("_update_Medeleg_Load_Page_Fault"),:1))]));(DEF_overload(Id_aux(Id("_mod_Load_Page_Fault"),:1),[(Id_aux(Id("_get_Medeleg_Load_Page_Fault"),:1));(Id_aux(Id("_set_Medeleg_Load_Page_Fault"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Medeleg_Fetch_Page_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Medeleg_Fetch_Page_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(12),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(12),Unknown),Nexp_aux(Nexp_constant(12),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Medeleg_Fetch_Page_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Medeleg_Fetch_Page_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(12),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Medeleg_Fetch_Page_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Medeleg_Fetch_Page_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(12),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Fetch_Page_Fault"),:1),[(Id_aux(Id("_update_Medeleg_Fetch_Page_Fault"),:1))]));(DEF_overload(Id_aux(Id("_mod_Fetch_Page_Fault"),:1),[(Id_aux(Id("_get_Medeleg_Fetch_Page_Fault"),:1));(Id_aux(Id("_set_Medeleg_Fetch_Page_Fault"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Medeleg_MEnvCall"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Medeleg_MEnvCall"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(10),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(10),Unknown),Nexp_aux(Nexp_constant(10),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Medeleg_MEnvCall"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Medeleg_MEnvCall"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(10),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Medeleg_MEnvCall"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Medeleg_MEnvCall"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(10),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_MEnvCall"),:1),[(Id_aux(Id("_update_Medeleg_MEnvCall"),:1))]));(DEF_overload(Id_aux(Id("_mod_MEnvCall"),:1),[(Id_aux(Id("_get_Medeleg_MEnvCall"),:1));(Id_aux(Id("_set_Medeleg_MEnvCall"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Medeleg_SEnvCall"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Medeleg_SEnvCall"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(9),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(9),Unknown),Nexp_aux(Nexp_constant(9),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Medeleg_SEnvCall"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Medeleg_SEnvCall"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(9),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Medeleg_SEnvCall"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Medeleg_SEnvCall"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(9),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SEnvCall"),:1),[(Id_aux(Id("_update_Medeleg_SEnvCall"),:1))]));(DEF_overload(Id_aux(Id("_mod_SEnvCall"),:1),[(Id_aux(Id("_get_Medeleg_SEnvCall"),:1));(Id_aux(Id("_set_Medeleg_SEnvCall"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Medeleg_UEnvCall"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Medeleg_UEnvCall"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(8),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Medeleg_UEnvCall"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Medeleg_UEnvCall"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Medeleg_UEnvCall"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Medeleg_UEnvCall"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_UEnvCall"),:1),[(Id_aux(Id("_update_Medeleg_UEnvCall"),:1))]));(DEF_overload(Id_aux(Id("_mod_UEnvCall"),:1),[(Id_aux(Id("_get_Medeleg_UEnvCall"),:1));(Id_aux(Id("_set_Medeleg_UEnvCall"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Medeleg_SAMO_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Medeleg_SAMO_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(7),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Medeleg_SAMO_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Medeleg_SAMO_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Medeleg_SAMO_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Medeleg_SAMO_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SAMO_Access_Fault"),:1),[(Id_aux(Id("_update_Medeleg_SAMO_Access_Fault"),:1))]));(DEF_overload(Id_aux(Id("_mod_SAMO_Access_Fault"),:1),[(Id_aux(Id("_get_Medeleg_SAMO_Access_Fault"),:1));(Id_aux(Id("_set_Medeleg_SAMO_Access_Fault"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Medeleg_SAMO_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Medeleg_SAMO_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(6),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(6),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(6),Unknown),Nexp_aux(Nexp_constant(6),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Medeleg_SAMO_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Medeleg_SAMO_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(6),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(6),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Medeleg_SAMO_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Medeleg_SAMO_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(6),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(6),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SAMO_Addr_Align"),:1),[(Id_aux(Id("_update_Medeleg_SAMO_Addr_Align"),:1))]));(DEF_overload(Id_aux(Id("_mod_SAMO_Addr_Align"),:1),[(Id_aux(Id("_get_Medeleg_SAMO_Addr_Align"),:1));(Id_aux(Id("_set_Medeleg_SAMO_Addr_Align"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Medeleg_Load_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Medeleg_Load_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(5),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Medeleg_Load_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Medeleg_Load_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Medeleg_Load_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Medeleg_Load_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Load_Access_Fault"),:1),[(Id_aux(Id("_update_Medeleg_Load_Access_Fault"),:1))]));(DEF_overload(Id_aux(Id("_mod_Load_Access_Fault"),:1),[(Id_aux(Id("_get_Medeleg_Load_Access_Fault"),:1));(Id_aux(Id("_set_Medeleg_Load_Access_Fault"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Medeleg_Load_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Medeleg_Load_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Medeleg_Load_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Medeleg_Load_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Medeleg_Load_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Medeleg_Load_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Load_Addr_Align"),:1),[(Id_aux(Id("_update_Medeleg_Load_Addr_Align"),:1))]));(DEF_overload(Id_aux(Id("_mod_Load_Addr_Align"),:1),[(Id_aux(Id("_get_Medeleg_Load_Addr_Align"),:1));(Id_aux(Id("_set_Medeleg_Load_Addr_Align"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Medeleg_Breakpoint"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Medeleg_Breakpoint"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(3),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Medeleg_Breakpoint"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Medeleg_Breakpoint"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Medeleg_Breakpoint"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Medeleg_Breakpoint"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Breakpoint"),:1),[(Id_aux(Id("_update_Medeleg_Breakpoint"),:1))]));(DEF_overload(Id_aux(Id("_mod_Breakpoint"),:1),[(Id_aux(Id("_get_Medeleg_Breakpoint"),:1));(Id_aux(Id("_set_Medeleg_Breakpoint"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Medeleg_Illegal_Instr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Medeleg_Illegal_Instr"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(2),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Medeleg_Illegal_Instr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Medeleg_Illegal_Instr"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Medeleg_Illegal_Instr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Medeleg_Illegal_Instr"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Illegal_Instr"),:1),[(Id_aux(Id("_update_Medeleg_Illegal_Instr"),:1))]));(DEF_overload(Id_aux(Id("_mod_Illegal_Instr"),:1),[(Id_aux(Id("_get_Medeleg_Illegal_Instr"),:1));(Id_aux(Id("_set_Medeleg_Illegal_Instr"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Medeleg_Fetch_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Medeleg_Fetch_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Medeleg_Fetch_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Medeleg_Fetch_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Medeleg_Fetch_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Medeleg_Fetch_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Fetch_Access_Fault"),:1),[(Id_aux(Id("_update_Medeleg_Fetch_Access_Fault"),:1))]));(DEF_overload(Id_aux(Id("_mod_Fetch_Access_Fault"),:1),[(Id_aux(Id("_get_Medeleg_Fetch_Access_Fault"),:1));(Id_aux(Id("_set_Medeleg_Fetch_Access_Fault"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Medeleg_Fetch_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Medeleg_Fetch_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Medeleg_Fetch_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Medeleg_Fetch_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Medeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Medeleg_Fetch_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Medeleg_Fetch_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Medeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),Id_aux(Id("Medeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Fetch_Addr_Align"),:1),[(Id_aux(Id("_update_Medeleg_Fetch_Addr_Align"),:1))]));(DEF_overload(Id_aux(Id("_mod_Fetch_Addr_Align"),:1),[(Id_aux(Id("_get_Medeleg_Fetch_Addr_Align"),:1));(Id_aux(Id("_set_Medeleg_Fetch_Addr_Align"),:1))]));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:295))]),model/riscv_sys_regs.sail:295),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:295))]),model/riscv_sys_regs.sail:295),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:295)),model/riscv_sys_regs.sail:295),Id_aux(Id("medeleg"),model/riscv_sys_regs.sail:295)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:295)),model/riscv_sys_regs.sail:295))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_medeleg"),model/riscv_sys_regs.sail:297),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_medeleg"),model/riscv_sys_regs.sail:297),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297),P_aux(P_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:297)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:297)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:297-302)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:298)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Medeleg"),model/riscv_sys_regs.sail:298),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:298)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:300)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Medeleg_MEnvCall"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:300)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_regs.sail:300)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:301)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297))),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Mtvec"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Mtvec"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Mtvec_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_Mtvec"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_Mtvec"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Mtvec_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mtvec_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mtvec_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),Id_aux(Id("Mtvec_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mtvec_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mtvec_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mtvec_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mtvec_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mtvec_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mtvec_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mtvec_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),Id_aux(Id("Mtvec_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_Mtvec_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_Mtvec_bits"),:1));(Id_aux(Id("_set_Mtvec_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mtvec_Base"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mtvec_Base"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),Id_aux(Id("Mtvec_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mtvec_Base"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mtvec_Base"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mtvec_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mtvec_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(61),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(61),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(61),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mtvec_Base"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mtvec_Base"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mtvec_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),Id_aux(Id("Mtvec_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(61),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(61),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(61),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Base"),:1),[(Id_aux(Id("_update_Mtvec_Base"),:1))]));(DEF_overload(Id_aux(Id("_mod_Base"),:1),[(Id_aux(Id("_get_Mtvec_Base"),:1));(Id_aux(Id("_set_Mtvec_Base"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mtvec_Mode"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mtvec_Mode"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),Id_aux(Id("Mtvec_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mtvec_Mode"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mtvec_Mode"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mtvec_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mtvec_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mtvec_Mode"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mtvec_Mode"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mtvec_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),Id_aux(Id("Mtvec_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Mode"),:1),[(Id_aux(Id("_update_Mtvec_Mode"),:1))]));(DEF_overload(Id_aux(Id("_mod_Mode"),:1),[(Id_aux(Id("_get_Mtvec_Mode"),:1));(Id_aux(Id("_set_Mtvec_Mode"),:1))]));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:310))]),model/riscv_sys_regs.sail:310),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:310))]),model/riscv_sys_regs.sail:310),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:310)),model/riscv_sys_regs.sail:310),Id_aux(Id("mtvec"),model/riscv_sys_regs.sail:310)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:310)),model/riscv_sys_regs.sail:310))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_tvec"),model/riscv_sys_regs.sail:312),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312))],Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_tvec"),model/riscv_sys_regs.sail:312),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312),P_aux(P_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:312)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312))),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:312)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:312-319)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:313)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Mtvec"),model/riscv_sys_regs.sail:313),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:313)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("trapVectorMode_of_bits"),model/riscv_sys_regs.sail:314),[(E_aux(E_app(Id_aux(Id("_get_Mtvec_Mode"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:314)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:259)),model/riscv_types.sail:259)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("TV_Direct"),model/riscv_sys_regs.sail:315)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:259)),model/riscv_types.sail:259)),E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:315)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("TV_Vector"),model/riscv_sys_regs.sail:316)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:259)),model/riscv_types.sail:259)),E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:316)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:259)),model/riscv_types.sail:259)),E_aux(E_app(Id_aux(Id("_update_Mtvec_Mode"),:1),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:317)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Mtvec_Mode"),:1),[(E_aux(E_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:317)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),:1)),:1))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312)))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312))),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312)))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Mcause"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Mcause"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Mcause_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_Mcause"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_Mcause"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Mcause_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mcause_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mcause_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),Id_aux(Id("Mcause_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mcause_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mcause_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mcause_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mcause_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mcause_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mcause_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mcause_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),Id_aux(Id("Mcause_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_Mcause_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_Mcause_bits"),:1));(Id_aux(Id("_set_Mcause_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mcause_IsInterrupt"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mcause_IsInterrupt"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),Id_aux(Id("Mcause_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(63),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mcause_IsInterrupt"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mcause_IsInterrupt"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mcause_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mcause_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mcause_IsInterrupt"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mcause_IsInterrupt"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mcause_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),Id_aux(Id("Mcause_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_IsInterrupt"),:1),[(Id_aux(Id("_update_Mcause_IsInterrupt"),:1))]));(DEF_overload(Id_aux(Id("_mod_IsInterrupt"),:1),[(Id_aux(Id("_get_Mcause_IsInterrupt"),:1));(Id_aux(Id("_set_Mcause_IsInterrupt"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Mcause_Cause"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Mcause_Cause"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),Id_aux(Id("Mcause_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(62),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(62),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Mcause_Cause"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Mcause_Cause"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mcause_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Mcause_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(62),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(62),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(62),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Mcause_Cause"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Mcause_Cause"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Mcause_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1)),Id_aux(Id("Mcause_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(62),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(62),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(62),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Mcause"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Cause"),:1),[(Id_aux(Id("_update_Mcause_Cause"),:1))]));(DEF_overload(Id_aux(Id("_mod_Cause"),:1),[(Id_aux(Id("_get_Mcause_Cause"),:1));(Id_aux(Id("_set_Mcause_Cause"),:1))]));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:325))]),model/riscv_sys_regs.sail:325),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:325))]),model/riscv_sys_regs.sail:325),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:325)),model/riscv_sys_regs.sail:325),Id_aux(Id("mcause"),model/riscv_sys_regs.sail:325)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:325)),model/riscv_sys_regs.sail:325))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("tvec_addr"),model/riscv_sys_regs.sail:328),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328));(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_regs.sail:328),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328))]),model/riscv_sys_regs.sail:328),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_regs.sail:328),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328))]),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("tvec_addr"),model/riscv_sys_regs.sail:328),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:328)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328))),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328),P_aux(P_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:328)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328))),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328));(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328))]),model/riscv_sys_regs.sail:328-337)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:329)),model/riscv_sys_regs.sail:329),P_aux(P_id(Id_aux(Id("base"),model/riscv_sys_regs.sail:329)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Mtvec_Base"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:329)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(62),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("00"),model/riscv_sys_regs.sail:329)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(62),:1),Nexp_aux(Nexp_constant(2),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("trapVectorMode_of_bits"),model/riscv_sys_regs.sail:330),[(E_aux(E_app(Id_aux(Id("_get_Mtvec_Mode"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:330)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:259)),model/riscv_types.sail:259)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("TV_Direct"),model/riscv_sys_regs.sail:331)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:259)),model/riscv_types.sail:259)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_regs.sail:331),[(E_aux(E_id(Id_aux(Id("base"),model/riscv_sys_regs.sail:331)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("TV_Vector"),model/riscv_sys_regs.sail:332)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:259)),model/riscv_types.sail:259)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Mcause_IsInterrupt"),:1),[(E_aux(E_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:332)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:332)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_regs.sail:333),[(E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("base"),model/riscv_sys_regs.sail:333)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("shiftl"),model/prelude.sail:169),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_regs.sail:333),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Mcause_Cause"),:1),[(E_aux(E_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:333)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_sys_regs.sail:333)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_regs.sail:334),[(E_aux(E_id(Id_aux(Id("base"),model/riscv_sys_regs.sail:334)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_regs.sail:328),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_regs.sail:328))]),model/riscv_sys_regs.sail:328))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("TV_Reserved"),model/riscv_sys_regs.sail:335)),Typ_aux(Typ_id(Id_aux(Id("TrapVectorMode"),model/riscv_types.sail:259)),model/riscv_types.sail:259)),E_aux(E_app(Id_aux(Id("None"),model/riscv_sys_regs.sail:335),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_regs.sail:335)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_regs.sail:328),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_regs.sail:328))]),model/riscv_sys_regs.sail:328)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_regs.sail:328),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_regs.sail:328))]),model/riscv_sys_regs.sail:328))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_regs.sail:328),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_regs.sail:328))]),model/riscv_sys_regs.sail:328)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_regs.sail:328),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_regs.sail:328))]),model/riscv_sys_regs.sail:328))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328));(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:328)),model/riscv_sys_regs.sail:328))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_regs.sail:328),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_regs.sail:328))]),model/riscv_sys_regs.sail:328),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:341))]),model/riscv_sys_regs.sail:341),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:341))]),model/riscv_sys_regs.sail:341),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:341)),model/riscv_sys_regs.sail:341),Id_aux(Id("mepc"),model/riscv_sys_regs.sail:341)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_xepc"),model/riscv_sys_regs.sail:346),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:346)),model/riscv_sys_regs.sail:346))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:346)),model/riscv_sys_regs.sail:346),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:346)),model/riscv_sys_regs.sail:346)),model/riscv_sys_regs.sail:346),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_xepc"),model/riscv_sys_regs.sail:346),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:346)),model/riscv_sys_regs.sail:346),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:346)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_if(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("sys_enable_writable_misa"),model/riscv_sys_regs.sail:349),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_regs.sail:349)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:74)),model/riscv_sys_regs.sail:74)));(E_aux(E_app(Id_aux(Id("sys_enable_rvc"),model/riscv_sys_regs.sail:349),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_regs.sail:349)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:76)),model/riscv_sys_regs.sail:76)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Misa_C"),:1),[(E_aux(E_id(Id_aux(Id("misa"),model/riscv_sys_regs.sail:349)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:349)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex2136#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex2137#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex2136#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex2137#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("bitvector_update"),../sail/lib/vector_dec.sail:127),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:350)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_sys_regs.sail:350)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_zero,model/riscv_sys_regs.sail:350)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:351)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_sys_regs.sail:351),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("100"),model/riscv_sys_regs.sail:351)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pc_alignment_mask"),model/riscv_sys_regs.sail:354),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:354)),model/riscv_sys_regs.sail:354),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:354)),model/riscv_sys_regs.sail:354)),model/riscv_sys_regs.sail:354),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pc_alignment_mask"),model/riscv_sys_regs.sail:354),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_regs.sail:354)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("not_vec"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_regs.sail:355),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Misa_C"),:1),[(E_aux(E_id(Id_aux(Id("misa"),model/riscv_sys_regs.sail:355)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:355)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_bin("00"),model/riscv_sys_regs.sail:355)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_bin("10"),model/riscv_sys_regs.sail:355)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:359))]),model/riscv_sys_regs.sail:359),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:359))]),model/riscv_sys_regs.sail:359),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:359)),model/riscv_sys_regs.sail:359),Id_aux(Id("mtval"),model/riscv_sys_regs.sail:359)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:360))]),model/riscv_sys_regs.sail:360),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:360))]),model/riscv_sys_regs.sail:360),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:360)),model/riscv_sys_regs.sail:360),Id_aux(Id("mscratch"),model/riscv_sys_regs.sail:360)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Counteren"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Counteren"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Counteren_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_Counteren"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_Counteren"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Counteren_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Counteren_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Counteren_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),Id_aux(Id("Counteren_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Counteren_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Counteren_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Counteren_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Counteren_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(31),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Counteren_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Counteren_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Counteren_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),Id_aux(Id("Counteren_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_Counteren_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_Counteren_bits"),:1));(Id_aux(Id("_set_Counteren_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Counteren_HPM"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Counteren_HPM"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),Id_aux(Id("Counteren_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Counteren_HPM"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Counteren_HPM"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Counteren_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Counteren_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(28),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(28),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Counteren_HPM"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Counteren_HPM"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Counteren_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),Id_aux(Id("Counteren_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(28),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(28),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(28),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(29),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_HPM"),:1),[(Id_aux(Id("_update_Counteren_HPM"),:1))]));(DEF_overload(Id_aux(Id("_mod_HPM"),:1),[(Id_aux(Id("_get_Counteren_HPM"),:1));(Id_aux(Id("_set_Counteren_HPM"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Counteren_IR"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Counteren_IR"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),Id_aux(Id("Counteren_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(2),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Counteren_IR"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Counteren_IR"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Counteren_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Counteren_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Counteren_IR"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Counteren_IR"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Counteren_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),Id_aux(Id("Counteren_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_IR"),:1),[(Id_aux(Id("_update_Counteren_IR"),:1))]));(DEF_overload(Id_aux(Id("_mod_IR"),:1),[(Id_aux(Id("_get_Counteren_IR"),:1));(Id_aux(Id("_set_Counteren_IR"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Counteren_TM"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Counteren_TM"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),Id_aux(Id("Counteren_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Counteren_TM"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Counteren_TM"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Counteren_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Counteren_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Counteren_TM"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Counteren_TM"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Counteren_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),Id_aux(Id("Counteren_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_TM"),:1),[(Id_aux(Id("_update_Counteren_TM"),:1))]));(DEF_overload(Id_aux(Id("_mod_TM"),:1),[(Id_aux(Id("_get_Counteren_TM"),:1));(Id_aux(Id("_set_Counteren_TM"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Counteren_CY"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Counteren_CY"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),Id_aux(Id("Counteren_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Counteren_CY"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Counteren_CY"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Counteren_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Counteren_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Counteren_CY"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Counteren_CY"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Counteren_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),Id_aux(Id("Counteren_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_CY"),:1),[(Id_aux(Id("_update_Counteren_CY"),:1))]));(DEF_overload(Id_aux(Id("_mod_CY"),:1),[(Id_aux(Id("_get_Counteren_CY"),:1));(Id_aux(Id("_set_Counteren_CY"),:1))]));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:371))]),model/riscv_sys_regs.sail:371),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:371))]),model/riscv_sys_regs.sail:371),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:371)),model/riscv_sys_regs.sail:371),Id_aux(Id("mcounteren"),model/riscv_sys_regs.sail:371)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:371)),model/riscv_sys_regs.sail:371))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:372))]),model/riscv_sys_regs.sail:372),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:372))]),model/riscv_sys_regs.sail:372),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:372)),model/riscv_sys_regs.sail:372),Id_aux(Id("scounteren"),model/riscv_sys_regs.sail:372)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:372)),model/riscv_sys_regs.sail:372))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_mcounteren"),model/riscv_sys_regs.sail:374),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_mcounteren"),model/riscv_sys_regs.sail:374),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374),P_aux(P_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:374)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:374)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:374-380)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:376)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Counteren_IR"),:1),[(E_aux(E_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:376)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374)));(E_aux(E_vector([(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:376)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_sys_regs.sail:376)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:377)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Counteren_TM"),:1),[(E_aux(E_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:377)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)));(E_aux(E_vector([(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:377)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_sys_regs.sail:377)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:378)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Counteren_CY"),:1),[(E_aux(E_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:378)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)));(E_aux(E_vector([(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:378)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_sys_regs.sail:378)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:379)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_scounteren"),model/riscv_sys_regs.sail:382),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_scounteren"),model/riscv_sys_regs.sail:382),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382),P_aux(P_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:382)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:382)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:382-388)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:384)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Counteren_IR"),:1),[(E_aux(E_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:384)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382)));(E_aux(E_vector([(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:384)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_sys_regs.sail:384)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:385)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Counteren_TM"),:1),[(E_aux(E_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:385)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)));(E_aux(E_vector([(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:385)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_sys_regs.sail:385)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:386)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Counteren_CY"),:1),[(E_aux(E_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:386)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)));(E_aux(E_vector([(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:386)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_sys_regs.sail:386)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("c"),model/riscv_sys_regs.sail:387)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382))),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:390))]),model/riscv_sys_regs.sail:390),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:390))]),model/riscv_sys_regs.sail:390),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:390),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),model/riscv_sys_regs.sail:390))]),model/riscv_sys_regs.sail:390),Id_aux(Id("mcycle"),model/riscv_sys_regs.sail:390)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:391))]),model/riscv_sys_regs.sail:391),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:391))]),model/riscv_sys_regs.sail:391),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:391),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),model/riscv_sys_regs.sail:391))]),model/riscv_sys_regs.sail:391),Id_aux(Id("mtime"),model/riscv_sys_regs.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:404))]),model/riscv_sys_regs.sail:404),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:404))]),model/riscv_sys_regs.sail:404),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:404),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),model/riscv_sys_regs.sail:404))]),model/riscv_sys_regs.sail:404),Id_aux(Id("minstret"),model/riscv_sys_regs.sail:404)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:405))]),model/riscv_sys_regs.sail:405),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:405))]),model/riscv_sys_regs.sail:405),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:405)),model/riscv_sys_regs.sail:405),Id_aux(Id("minstret_written"),model/riscv_sys_regs.sail:405)),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:405)),model/riscv_sys_regs.sail:405))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("retire_instruction"),model/riscv_sys_regs.sail:407),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_regs.sail:407)),model/riscv_sys_regs.sail:407),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:405));(BE_aux(BE_wreg,model/riscv_sys_regs.sail:405))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_regs.sail:407)),model/riscv_sys_regs.sail:407)),model/riscv_sys_regs.sail:407),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("retire_instruction"),model/riscv_sys_regs.sail:407),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_regs.sail:407)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bool"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("minstret_written"),model/riscv_sys_regs.sail:408)),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:405)),model/riscv_sys_regs.sail:405)));(E_aux(E_lit(L_aux(L_true,model/riscv_sys_regs.sail:408)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:30)),../sail/lib/flow.sail:30)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("minstret_written"),model/riscv_sys_regs.sail:409)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/riscv_sys_regs.sail:409)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("minstret"),model/riscv_sys_regs.sail:410)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("add_bits_int"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("minstret"),model/riscv_sys_regs.sail:410)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_sys_regs.sail:410)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_regs.sail:407)),model/riscv_sys_regs.sail:407)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_regs.sail:407)),model/riscv_sys_regs.sail:407))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_regs.sail:407)),model/riscv_sys_regs.sail:407),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:414))]),model/riscv_sys_regs.sail:414),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:414))]),model/riscv_sys_regs.sail:414),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:414),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:414)),model/riscv_sys_regs.sail:414))]),model/riscv_sys_regs.sail:414),Id_aux(Id("mvendorid"),model/riscv_sys_regs.sail:414)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:415))]),model/riscv_sys_regs.sail:415),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:415))]),model/riscv_sys_regs.sail:415),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:415)),model/riscv_sys_regs.sail:415),Id_aux(Id("mimpid"),model/riscv_sys_regs.sail:415)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:416))]),model/riscv_sys_regs.sail:416),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:416))]),model/riscv_sys_regs.sail:416),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:416)),model/riscv_sys_regs.sail:416),Id_aux(Id("marchid"),model/riscv_sys_regs.sail:416)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:418))]),model/riscv_sys_regs.sail:418),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:418))]),model/riscv_sys_regs.sail:418),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:418)),model/riscv_sys_regs.sail:418),Id_aux(Id("mhartid"),model/riscv_sys_regs.sail:418)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Sstatus"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Sstatus"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Sstatus_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_Sstatus"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_Sstatus"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Sstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sstatus_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sstatus_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sstatus_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sstatus_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sstatus_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sstatus_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_Sstatus_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_Sstatus_bits"),:1));(Id_aux(Id("_set_Sstatus_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sstatus_SD"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sstatus_SD"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(63),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sstatus_SD"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sstatus_SD"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sstatus_SD"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sstatus_SD"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SD"),:1),[(Id_aux(Id("_update_Sstatus_SD"),:1))]));(DEF_overload(Id_aux(Id("_mod_SD"),:1),[(Id_aux(Id("_get_Sstatus_SD"),:1));(Id_aux(Id("_set_Sstatus_SD"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sstatus_MXR"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sstatus_MXR"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(19),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(19),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(19),Unknown),Nexp_aux(Nexp_constant(19),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sstatus_MXR"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sstatus_MXR"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(19),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(19),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sstatus_MXR"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sstatus_MXR"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(19),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(19),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_MXR"),:1),[(Id_aux(Id("_update_Sstatus_MXR"),:1))]));(DEF_overload(Id_aux(Id("_mod_MXR"),:1),[(Id_aux(Id("_get_Sstatus_MXR"),:1));(Id_aux(Id("_set_Sstatus_MXR"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sstatus_SUM"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sstatus_SUM"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(18),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(18),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(18),Unknown),Nexp_aux(Nexp_constant(18),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sstatus_SUM"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sstatus_SUM"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(18),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(18),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sstatus_SUM"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sstatus_SUM"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(18),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(18),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(18),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SUM"),:1),[(Id_aux(Id("_update_Sstatus_SUM"),:1))]));(DEF_overload(Id_aux(Id("_mod_SUM"),:1),[(Id_aux(Id("_get_Sstatus_SUM"),:1));(Id_aux(Id("_set_Sstatus_SUM"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sstatus_XS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sstatus_XS"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(16),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(15),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(16),Unknown),Nexp_aux(Nexp_constant(15),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sstatus_XS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sstatus_XS"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(16),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(15),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sstatus_XS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sstatus_XS"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(16),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(15),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_XS"),:1),[(Id_aux(Id("_update_Sstatus_XS"),:1))]));(DEF_overload(Id_aux(Id("_mod_XS"),:1),[(Id_aux(Id("_get_Sstatus_XS"),:1));(Id_aux(Id("_set_Sstatus_XS"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sstatus_FS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sstatus_FS"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(14),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(13),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(14),Unknown),Nexp_aux(Nexp_constant(13),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sstatus_FS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sstatus_FS"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(14),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(13),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sstatus_FS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sstatus_FS"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(14),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(14),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(13),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_FS"),:1),[(Id_aux(Id("_update_Sstatus_FS"),:1))]));(DEF_overload(Id_aux(Id("_mod_FS"),:1),[(Id_aux(Id("_get_Sstatus_FS"),:1));(Id_aux(Id("_set_Sstatus_FS"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sstatus_SPP"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sstatus_SPP"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(8),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sstatus_SPP"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sstatus_SPP"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sstatus_SPP"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sstatus_SPP"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SPP"),:1),[(Id_aux(Id("_update_Sstatus_SPP"),:1))]));(DEF_overload(Id_aux(Id("_mod_SPP"),:1),[(Id_aux(Id("_get_Sstatus_SPP"),:1));(Id_aux(Id("_set_Sstatus_SPP"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sstatus_SPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sstatus_SPIE"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(5),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sstatus_SPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sstatus_SPIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sstatus_SPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sstatus_SPIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SPIE"),:1),[(Id_aux(Id("_update_Sstatus_SPIE"),:1))]));(DEF_overload(Id_aux(Id("_mod_SPIE"),:1),[(Id_aux(Id("_get_Sstatus_SPIE"),:1));(Id_aux(Id("_set_Sstatus_SPIE"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sstatus_UPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sstatus_UPIE"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sstatus_UPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sstatus_UPIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sstatus_UPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sstatus_UPIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_UPIE"),:1),[(Id_aux(Id("_update_Sstatus_UPIE"),:1))]));(DEF_overload(Id_aux(Id("_mod_UPIE"),:1),[(Id_aux(Id("_get_Sstatus_UPIE"),:1));(Id_aux(Id("_set_Sstatus_UPIE"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sstatus_SIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sstatus_SIE"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sstatus_SIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sstatus_SIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sstatus_SIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sstatus_SIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SIE"),:1),[(Id_aux(Id("_update_Sstatus_SIE"),:1))]));(DEF_overload(Id_aux(Id("_mod_SIE"),:1),[(Id_aux(Id("_get_Sstatus_SIE"),:1));(Id_aux(Id("_set_Sstatus_SIE"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sstatus_UIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sstatus_UIE"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sstatus_UIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sstatus_UIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sstatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sstatus_UIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sstatus_UIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sstatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),Id_aux(Id("Sstatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_UIE"),:1),[(Id_aux(Id("_update_Sstatus_UIE"),:1))]));(DEF_overload(Id_aux(Id("_mod_UIE"),:1),[(Id_aux(Id("_get_Sstatus_UIE"),:1));(Id_aux(Id("_set_Sstatus_UIE"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("get_sstatus_UXL"),model/riscv_sys_regs.sail:440),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:440)),model/riscv_sys_regs.sail:440))],Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_sys_regs.sail:440)),model/riscv_sys_regs.sail:440),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_sys_regs.sail:440)),model/riscv_sys_regs.sail:440)),model/riscv_sys_regs.sail:440),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("get_sstatus_UXL"),model/riscv_sys_regs.sail:440),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:440)),model/riscv_sys_regs.sail:440),P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:440)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:440)),model/riscv_sys_regs.sail:440))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:440)),model/riscv_sys_regs.sail:440)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:441)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Mstatus"),model/riscv_sys_regs.sail:441),[(E_aux(E_app(Id_aux(Id("_get_Sstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:441)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:440)),model/riscv_sys_regs.sail:440)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("get_mstatus_UXL"),model/riscv_sys_regs.sail:442),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:442)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:440)),model/riscv_sys_regs.sail:440))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("set_sstatus_UXL"),model/riscv_sys_regs.sail:445),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445));(Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("set_sstatus_UXL"),model/riscv_sys_regs.sail:445),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445),P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:445)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("arch_xlen"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445),P_aux(P_id(Id_aux(Id("a"),model/riscv_sys_regs.sail:445)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:445-449)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:446)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Mstatus"),model/riscv_sys_regs.sail:446),[(E_aux(E_app(Id_aux(Id("_get_Sstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:446)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:447)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162)),E_aux(E_app(Id_aux(Id("set_mstatus_UXL"),model/riscv_sys_regs.sail:447),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:447)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(E_aux(E_id(Id_aux(Id("a"),model/riscv_sys_regs.sail:447)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("Mk_Sstatus"),model/riscv_sys_regs.sail:448),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:448)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lower_mstatus"),model/riscv_sys_regs.sail:451),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("lower_mstatus"),model/riscv_sys_regs.sail:451),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:451)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:452)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Sstatus"),model/riscv_sys_regs.sail:452),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_regs.sail:452),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_regs.sail:452)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:453)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sstatus_SD"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:453)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_SD"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:453)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:454)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445)),E_aux(E_app(Id_aux(Id("set_sstatus_UXL"),model/riscv_sys_regs.sail:454),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:454)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("get_mstatus_UXL"),model/riscv_sys_regs.sail:454),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:454)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:455)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sstatus_MXR"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:455)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:445)),model/riscv_sys_regs.sail:445)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_MXR"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:455)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:456)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sstatus_SUM"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:456)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_SUM"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:456)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:457)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sstatus_XS"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:457)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_XS"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:457)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:458)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sstatus_FS"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:458)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_FS"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:458)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:459)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sstatus_SPP"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:459)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_SPP"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:459)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:460)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sstatus_SPIE"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:460)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_SPIE"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:460)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:461)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sstatus_UPIE"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:461)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_UPIE"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:461)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:462)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sstatus_SIE"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:462)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_SIE"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:462)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:463)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sstatus_UIE"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:463)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_UIE"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:463)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:464)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lift_sstatus"),model/riscv_sys_regs.sail:467),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467));(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("lift_sstatus"),model/riscv_sys_regs.sail:467),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:467)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467),P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:467)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467));(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))]),model/riscv_sys_regs.sail:467-483)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:468)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Mstatus_MXR"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:468)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)));(E_aux(E_app(Id_aux(Id("_get_Sstatus_MXR"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:468)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:469)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Mstatus_SUM"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:469)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sstatus_SUM"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:469)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:471)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Mstatus_XS"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:471)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sstatus_XS"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:471)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:473)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Mstatus_FS"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:473)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sstatus_FS"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:473)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("dirty"),model/riscv_sys_regs.sail:474)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'_dirty0"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_dirty1"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_app(Id_aux(Id("extStatus_of_bits"),model/riscv_sys_regs.sail:474),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_FS"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:474)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:281)),model/riscv_types.sail:281)));(E_aux(E_id(Id_aux(Id("Dirty"),model/riscv_sys_regs.sail:474)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_app(Id_aux(Id("extStatus_of_bits"),model/riscv_sys_regs.sail:474),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_XS"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:474)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:281)),model/riscv_types.sail:281)));(E_aux(E_id(Id_aux(Id("Dirty"),model/riscv_sys_regs.sail:474)),Typ_aux(Typ_id(Id_aux(Id("ExtStatus"),model/riscv_types.sail:270)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex2257#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex2258#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex2257#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex2258#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:475)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Mstatus_SD"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:475)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("bool_to_bits"),model/riscv_sys_regs.sail:475),[(E_aux(E_id(Id_aux(Id("dirty"),model/riscv_sys_regs.sail:475)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'_dirty0"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_dirty1"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:477)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Mstatus_SPP"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:477)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sstatus_SPP"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:477)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:478)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Mstatus_SPIE"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:478)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sstatus_SPIE"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:478)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:479)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Mstatus_UPIE"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:479)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sstatus_UPIE"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:479)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:480)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Mstatus_SIE"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:480)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sstatus_SIE"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:480)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:481)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Mstatus_UIE"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:481)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sstatus_UIE"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:481)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:482)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467));(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_sstatus"),model/riscv_sys_regs.sail:485),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_sstatus"),model/riscv_sys_regs.sail:485),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:485)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:485)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:485-487)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("lift_sstatus"),model/riscv_sys_regs.sail:486),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:486)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485)));(E_aux(E_app(Id_aux(Id("Mk_Sstatus"),model/riscv_sys_regs.sail:486),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:486)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Sedeleg"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Sedeleg"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Sedeleg_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_Sedeleg"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_Sedeleg"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Sedeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sedeleg_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sedeleg_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sedeleg_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sedeleg_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sedeleg_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sedeleg_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sedeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_Sedeleg_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_Sedeleg_bits"),:1));(Id_aux(Id("_set_Sedeleg_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sedeleg_UEnvCall"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sedeleg_UEnvCall"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(8),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sedeleg_UEnvCall"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sedeleg_UEnvCall"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sedeleg_UEnvCall"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sedeleg_UEnvCall"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sedeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_UEnvCall"),:1),[(Id_aux(Id("_update_Sedeleg_UEnvCall"),:1))]));(DEF_overload(Id_aux(Id("_mod_UEnvCall"),:1),[(Id_aux(Id("_get_Sedeleg_UEnvCall"),:1));(Id_aux(Id("_set_Sedeleg_UEnvCall"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sedeleg_SAMO_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sedeleg_SAMO_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(7),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sedeleg_SAMO_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sedeleg_SAMO_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sedeleg_SAMO_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sedeleg_SAMO_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sedeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SAMO_Access_Fault"),:1),[(Id_aux(Id("_update_Sedeleg_SAMO_Access_Fault"),:1))]));(DEF_overload(Id_aux(Id("_mod_SAMO_Access_Fault"),:1),[(Id_aux(Id("_get_Sedeleg_SAMO_Access_Fault"),:1));(Id_aux(Id("_set_Sedeleg_SAMO_Access_Fault"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sedeleg_SAMO_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sedeleg_SAMO_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(6),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(6),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(6),Unknown),Nexp_aux(Nexp_constant(6),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sedeleg_SAMO_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sedeleg_SAMO_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(6),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(6),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sedeleg_SAMO_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sedeleg_SAMO_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sedeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(6),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(6),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SAMO_Addr_Align"),:1),[(Id_aux(Id("_update_Sedeleg_SAMO_Addr_Align"),:1))]));(DEF_overload(Id_aux(Id("_mod_SAMO_Addr_Align"),:1),[(Id_aux(Id("_get_Sedeleg_SAMO_Addr_Align"),:1));(Id_aux(Id("_set_Sedeleg_SAMO_Addr_Align"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sedeleg_Load_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sedeleg_Load_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(5),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sedeleg_Load_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sedeleg_Load_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sedeleg_Load_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sedeleg_Load_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sedeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Load_Access_Fault"),:1),[(Id_aux(Id("_update_Sedeleg_Load_Access_Fault"),:1))]));(DEF_overload(Id_aux(Id("_mod_Load_Access_Fault"),:1),[(Id_aux(Id("_get_Sedeleg_Load_Access_Fault"),:1));(Id_aux(Id("_set_Sedeleg_Load_Access_Fault"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sedeleg_Load_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sedeleg_Load_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sedeleg_Load_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sedeleg_Load_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sedeleg_Load_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sedeleg_Load_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sedeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Load_Addr_Align"),:1),[(Id_aux(Id("_update_Sedeleg_Load_Addr_Align"),:1))]));(DEF_overload(Id_aux(Id("_mod_Load_Addr_Align"),:1),[(Id_aux(Id("_get_Sedeleg_Load_Addr_Align"),:1));(Id_aux(Id("_set_Sedeleg_Load_Addr_Align"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sedeleg_Breakpoint"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sedeleg_Breakpoint"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(3),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sedeleg_Breakpoint"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sedeleg_Breakpoint"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sedeleg_Breakpoint"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sedeleg_Breakpoint"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sedeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Breakpoint"),:1),[(Id_aux(Id("_update_Sedeleg_Breakpoint"),:1))]));(DEF_overload(Id_aux(Id("_mod_Breakpoint"),:1),[(Id_aux(Id("_get_Sedeleg_Breakpoint"),:1));(Id_aux(Id("_set_Sedeleg_Breakpoint"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sedeleg_Illegal_Instr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sedeleg_Illegal_Instr"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(2),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sedeleg_Illegal_Instr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sedeleg_Illegal_Instr"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sedeleg_Illegal_Instr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sedeleg_Illegal_Instr"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sedeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Illegal_Instr"),:1),[(Id_aux(Id("_update_Sedeleg_Illegal_Instr"),:1))]));(DEF_overload(Id_aux(Id("_mod_Illegal_Instr"),:1),[(Id_aux(Id("_get_Sedeleg_Illegal_Instr"),:1));(Id_aux(Id("_set_Sedeleg_Illegal_Instr"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sedeleg_Fetch_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sedeleg_Fetch_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sedeleg_Fetch_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sedeleg_Fetch_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sedeleg_Fetch_Access_Fault"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sedeleg_Fetch_Access_Fault"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sedeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Fetch_Access_Fault"),:1),[(Id_aux(Id("_update_Sedeleg_Fetch_Access_Fault"),:1))]));(DEF_overload(Id_aux(Id("_mod_Fetch_Access_Fault"),:1),[(Id_aux(Id("_get_Sedeleg_Fetch_Access_Fault"),:1));(Id_aux(Id("_set_Sedeleg_Fetch_Access_Fault"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sedeleg_Fetch_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sedeleg_Fetch_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sedeleg_Fetch_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sedeleg_Fetch_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sedeleg_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sedeleg_Fetch_Addr_Align"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sedeleg_Fetch_Addr_Align"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sedeleg_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)),Id_aux(Id("Sedeleg_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Fetch_Addr_Align"),:1),[(Id_aux(Id("_update_Sedeleg_Fetch_Addr_Align"),:1))]));(DEF_overload(Id_aux(Id("_mod_Fetch_Addr_Align"),:1),[(Id_aux(Id("_get_Sedeleg_Fetch_Addr_Align"),:1));(Id_aux(Id("_set_Sedeleg_Fetch_Addr_Align"),:1))]));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:500))]),model/riscv_sys_regs.sail:500),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:500))]),model/riscv_sys_regs.sail:500),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:500)),model/riscv_sys_regs.sail:500),Id_aux(Id("sedeleg"),model/riscv_sys_regs.sail:500)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:500)),model/riscv_sys_regs.sail:500))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_sedeleg"),model/riscv_sys_regs.sail:502),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:502)),model/riscv_sys_regs.sail:502));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:502)),model/riscv_sys_regs.sail:502))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:502)),model/riscv_sys_regs.sail:502),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:502)),model/riscv_sys_regs.sail:502)),model/riscv_sys_regs.sail:502),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_sedeleg"),model/riscv_sys_regs.sail:502),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:502)),model/riscv_sys_regs.sail:502),P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:502)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:502)),model/riscv_sys_regs.sail:502))),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:502)),model/riscv_sys_regs.sail:502)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:502)),model/riscv_sys_regs.sail:502),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:502)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:502)),model/riscv_sys_regs.sail:502));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:502-504)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("Mk_Sedeleg"),model/riscv_sys_regs.sail:503),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_regs.sail:503),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:503)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_sys_regs.sail:503)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_sys_regs.sail:503)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(8),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:502)),model/riscv_sys_regs.sail:502))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:502)),model/riscv_sys_regs.sail:502));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:502)),model/riscv_sys_regs.sail:502),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Sinterrupts"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Sinterrupts"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Sinterrupts_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_Sinterrupts"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_Sinterrupts"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Sinterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sinterrupts_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sinterrupts_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),Id_aux(Id("Sinterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sinterrupts_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sinterrupts_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sinterrupts_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sinterrupts_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sinterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),Id_aux(Id("Sinterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_Sinterrupts_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_Sinterrupts_bits"),:1));(Id_aux(Id("_set_Sinterrupts_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sinterrupts_SEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sinterrupts_SEI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),Id_aux(Id("Sinterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(9),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(9),Unknown),Nexp_aux(Nexp_constant(9),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sinterrupts_SEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sinterrupts_SEI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(9),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sinterrupts_SEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sinterrupts_SEI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sinterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),Id_aux(Id("Sinterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(9),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SEI"),:1),[(Id_aux(Id("_update_Sinterrupts_SEI"),:1))]));(DEF_overload(Id_aux(Id("_mod_SEI"),:1),[(Id_aux(Id("_get_Sinterrupts_SEI"),:1));(Id_aux(Id("_set_Sinterrupts_SEI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sinterrupts_UEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sinterrupts_UEI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),Id_aux(Id("Sinterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(8),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sinterrupts_UEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sinterrupts_UEI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sinterrupts_UEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sinterrupts_UEI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sinterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),Id_aux(Id("Sinterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_UEI"),:1),[(Id_aux(Id("_update_Sinterrupts_UEI"),:1))]));(DEF_overload(Id_aux(Id("_mod_UEI"),:1),[(Id_aux(Id("_get_Sinterrupts_UEI"),:1));(Id_aux(Id("_set_Sinterrupts_UEI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sinterrupts_STI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sinterrupts_STI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),Id_aux(Id("Sinterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(5),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sinterrupts_STI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sinterrupts_STI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sinterrupts_STI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sinterrupts_STI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sinterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),Id_aux(Id("Sinterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_STI"),:1),[(Id_aux(Id("_update_Sinterrupts_STI"),:1))]));(DEF_overload(Id_aux(Id("_mod_STI"),:1),[(Id_aux(Id("_get_Sinterrupts_STI"),:1));(Id_aux(Id("_set_Sinterrupts_STI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sinterrupts_UTI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sinterrupts_UTI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),Id_aux(Id("Sinterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sinterrupts_UTI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sinterrupts_UTI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sinterrupts_UTI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sinterrupts_UTI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sinterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),Id_aux(Id("Sinterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_UTI"),:1),[(Id_aux(Id("_update_Sinterrupts_UTI"),:1))]));(DEF_overload(Id_aux(Id("_mod_UTI"),:1),[(Id_aux(Id("_get_Sinterrupts_UTI"),:1));(Id_aux(Id("_set_Sinterrupts_UTI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sinterrupts_SSI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sinterrupts_SSI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),Id_aux(Id("Sinterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sinterrupts_SSI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sinterrupts_SSI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sinterrupts_SSI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sinterrupts_SSI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sinterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),Id_aux(Id("Sinterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_SSI"),:1),[(Id_aux(Id("_update_Sinterrupts_SSI"),:1))]));(DEF_overload(Id_aux(Id("_mod_SSI"),:1),[(Id_aux(Id("_get_Sinterrupts_SSI"),:1));(Id_aux(Id("_set_Sinterrupts_SSI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Sinterrupts_USI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Sinterrupts_USI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),Id_aux(Id("Sinterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Sinterrupts_USI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Sinterrupts_USI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Sinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Sinterrupts_USI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Sinterrupts_USI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Sinterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),Id_aux(Id("Sinterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_USI"),:1),[(Id_aux(Id("_update_Sinterrupts_USI"),:1))]));(DEF_overload(Id_aux(Id("_mod_USI"),:1),[(Id_aux(Id("_get_Sinterrupts_USI"),:1));(Id_aux(Id("_set_Sinterrupts_USI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lower_mip"),model/riscv_sys_regs.sail:518),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("lower_mip"),model/riscv_sys_regs.sail:518),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:518)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518),P_aux(P_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:518)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518))]),model/riscv_sys_regs.sail:518-528)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:519)),model/riscv_sys_regs.sail:519),P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:519)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:519)),model/riscv_sys_regs.sail:519))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:519)),model/riscv_sys_regs.sail:519)),E_aux(E_app(Id_aux(Id("Mk_Sinterrupts"),model/riscv_sys_regs.sail:519),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_regs.sail:519),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_regs.sail:519)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:520)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_SEI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:520)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:519)),model/riscv_sys_regs.sail:519)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SEI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:520)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SEI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:520)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:521)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_STI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:521)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_STI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:521)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_STI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:521)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:522)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:522)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:522)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:522)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:524)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:524)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:524)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:524)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:525)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:525)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:525)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:525)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:526)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:526)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:526)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:526)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:527)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lower_mie"),model/riscv_sys_regs.sail:531),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("lower_mie"),model/riscv_sys_regs.sail:531),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:531)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531),P_aux(P_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:531)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531))]),model/riscv_sys_regs.sail:531-540)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:532)),model/riscv_sys_regs.sail:532),P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:532)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:532)),model/riscv_sys_regs.sail:532))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:532)),model/riscv_sys_regs.sail:532)),E_aux(E_app(Id_aux(Id("Mk_Sinterrupts"),model/riscv_sys_regs.sail:532),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_regs.sail:532),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_regs.sail:532)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:533)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_SEI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:533)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:532)),model/riscv_sys_regs.sail:532)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SEI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:533)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SEI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:533)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:534)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_STI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:534)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_STI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:534)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_STI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:534)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:535)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:535)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:535)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:535)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:536)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:536)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:536)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:536)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:537)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:537)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:537)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:537)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:538)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:538)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:538)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:538)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:539)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lift_sip"),model/riscv_sys_regs.sail:543),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("lift_sip"),model/riscv_sys_regs.sail:543),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543),P_aux(P_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:543)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543),P_aux(P_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:543)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543),P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:543)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543))]),model/riscv_sys_regs.sail:543-551)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:544)),model/riscv_sys_regs.sail:544),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:544)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:544)),model/riscv_sys_regs.sail:544))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:544)),model/riscv_sys_regs.sail:544)),E_aux(E_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:544)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:545)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:545)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:544)),model/riscv_sys_regs.sail:544)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:545)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:545)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("haveNExt"),model/riscv_sys_regs.sail:546),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_regs.sail:546)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:103)),model/riscv_sys_regs.sail:103)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:547)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:547)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:547)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:547)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:547)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:547)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:548)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:548)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:548)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:548)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:548)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:548)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:549)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:550)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_sip"),model/riscv_sys_regs.sail:553),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_sip"),model/riscv_sys_regs.sail:553),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:553)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553),P_aux(P_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:553)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:553)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:553-555)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("lift_sip"),model/riscv_sys_regs.sail:554),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:554)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553)));(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:554)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553)));(E_aux(E_app(Id_aux(Id("Mk_Sinterrupts"),model/riscv_sys_regs.sail:554),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:554)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lift_sie"),model/riscv_sys_regs.sail:558),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("lift_sie"),model/riscv_sys_regs.sail:558),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558),P_aux(P_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:558)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558),P_aux(P_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:558)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558),P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:558)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))]),model/riscv_sys_regs.sail:558-569)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:559)),model/riscv_sys_regs.sail:559),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:559)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:559)),model/riscv_sys_regs.sail:559))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:559)),model/riscv_sys_regs.sail:559)),E_aux(E_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:559)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:560)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SEI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:560)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:560)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_SEI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:560)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:559)),model/riscv_sys_regs.sail:559)));(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_SEI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:560)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:560)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:559)),model/riscv_sys_regs.sail:559))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:561)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_STI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:561)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:561)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_STI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:561)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_STI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:561)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:561)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:562)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:562)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:562)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:562)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:562)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:562)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("haveNExt"),model/riscv_sys_regs.sail:563),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_regs.sail:563)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:103)),model/riscv_sys_regs.sail:103)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:564)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:564)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:564)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:564)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:564)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:564)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:565)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:565)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:565)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:565)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:565)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:565)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:566)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:566)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_regs.sail:566)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("_update_Minterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:566)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:566)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:566)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:567)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)),E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:568)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_sie"),model/riscv_sys_regs.sail:571),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_sie"),model/riscv_sys_regs.sail:571),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571),P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:571)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571),P_aux(P_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:571)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:571)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:571-573)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("lift_sie"),model/riscv_sys_regs.sail:572),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_regs.sail:572)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571)));(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_regs.sail:572)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571)));(E_aux(E_app(Id_aux(Id("Mk_Sinterrupts"),model/riscv_sys_regs.sail:572),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:572)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:575))]),model/riscv_sys_regs.sail:575),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:575))]),model/riscv_sys_regs.sail:575),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:575)),model/riscv_sys_regs.sail:575),Id_aux(Id("sideleg"),model/riscv_sys_regs.sail:575)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:575)),model/riscv_sys_regs.sail:575))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:578))]),model/riscv_sys_regs.sail:578),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:578))]),model/riscv_sys_regs.sail:578),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:578)),model/riscv_sys_regs.sail:578),Id_aux(Id("stvec"),model/riscv_sys_regs.sail:578)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:578)),model/riscv_sys_regs.sail:578))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:579))]),model/riscv_sys_regs.sail:579),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:579))]),model/riscv_sys_regs.sail:579),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:579)),model/riscv_sys_regs.sail:579),Id_aux(Id("sscratch"),model/riscv_sys_regs.sail:579)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:580))]),model/riscv_sys_regs.sail:580),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:580))]),model/riscv_sys_regs.sail:580),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:580)),model/riscv_sys_regs.sail:580),Id_aux(Id("sepc"),model/riscv_sys_regs.sail:580)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:581))]),model/riscv_sys_regs.sail:581),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:581))]),model/riscv_sys_regs.sail:581),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:581)),model/riscv_sys_regs.sail:581),Id_aux(Id("scause"),model/riscv_sys_regs.sail:581)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:581)),model/riscv_sys_regs.sail:581))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:582))]),model/riscv_sys_regs.sail:582),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:582))]),model/riscv_sys_regs.sail:582),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:582)),model/riscv_sys_regs.sail:582),Id_aux(Id("stval"),model/riscv_sys_regs.sail:582)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Satp64"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Satp64"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Satp64_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_Satp64"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_Satp64"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Satp64_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Satp64_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Satp64_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),Id_aux(Id("Satp64_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Satp64_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Satp64_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp64_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp64_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Satp64_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Satp64_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Satp64_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),Id_aux(Id("Satp64_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_Satp64_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_Satp64_bits"),:1));(Id_aux(Id("_set_Satp64_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Satp64_Mode"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Satp64_Mode"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),Id_aux(Id("Satp64_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(60),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(60),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(60),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Satp64_Mode"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Satp64_Mode"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp64_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp64_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(60),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(60),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(3),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(3),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Satp64_Mode"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Satp64_Mode"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Satp64_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),Id_aux(Id("Satp64_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(60),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(60),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(3),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(3),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Mode"),:1),[(Id_aux(Id("_update_Satp64_Mode"),:1))]));(DEF_overload(Id_aux(Id("_mod_Mode"),:1),[(Id_aux(Id("_get_Satp64_Mode"),:1));(Id_aux(Id("_set_Satp64_Mode"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Satp64_Asid"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Satp64_Asid"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),Id_aux(Id("Satp64_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(59),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(59),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(44),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(59),Unknown),Nexp_aux(Nexp_constant(44),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Satp64_Asid"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Satp64_Asid"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp64_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp64_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(59),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(59),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(44),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(15),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(15),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Satp64_Asid"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Satp64_Asid"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Satp64_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),Id_aux(Id("Satp64_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(59),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(59),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(44),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(15),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(15),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Asid"),:1),[(Id_aux(Id("_update_Satp64_Asid"),:1))]));(DEF_overload(Id_aux(Id("_mod_Asid"),:1),[(Id_aux(Id("_get_Satp64_Asid"),:1));(Id_aux(Id("_set_Satp64_Asid"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Satp64_PPN"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Satp64_PPN"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),Id_aux(Id("Satp64_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(43),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(43),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(43),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Satp64_PPN"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Satp64_PPN"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp64_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp64_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(43),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(43),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(43),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(43),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(43),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Satp64_PPN"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Satp64_PPN"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Satp64_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),Id_aux(Id("Satp64_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(43),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(43),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(43),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(43),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(43),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_PPN"),:1),[(Id_aux(Id("_update_Satp64_PPN"),:1))]));(DEF_overload(Id_aux(Id("_mod_PPN"),:1),[(Id_aux(Id("_get_Satp64_PPN"),:1));(Id_aux(Id("_set_Satp64_PPN"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_satp64"),model/riscv_sys_regs.sail:595),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:595)),model/riscv_sys_regs.sail:595));(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:595),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),model/riscv_sys_regs.sail:595))]),model/riscv_sys_regs.sail:595));(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:595),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),model/riscv_sys_regs.sail:595))]),model/riscv_sys_regs.sail:595))],Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:595),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),model/riscv_sys_regs.sail:595))]),model/riscv_sys_regs.sail:595),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:595),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),model/riscv_sys_regs.sail:595))]),model/riscv_sys_regs.sail:595)),model/riscv_sys_regs.sail:595),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_satp64"),model/riscv_sys_regs.sail:595),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:595)),model/riscv_sys_regs.sail:595),P_aux(P_id(Id_aux(Id("a"),model/riscv_sys_regs.sail:595)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:595)),model/riscv_sys_regs.sail:595))),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:595)),model/riscv_sys_regs.sail:595)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:595),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),model/riscv_sys_regs.sail:595))]),model/riscv_sys_regs.sail:595),P_aux(P_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:595)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:595),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),model/riscv_sys_regs.sail:595))]),model/riscv_sys_regs.sail:595),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:595)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:595)),model/riscv_sys_regs.sail:595));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:595-602)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:596)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Satp64"),model/riscv_sys_regs.sail:596),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:596)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("satp64Mode_of_bits"),model/riscv_sys_regs.sail:597),[(E_aux(E_id(Id_aux(Id("a"),model/riscv_sys_regs.sail:597)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:595)),model/riscv_sys_regs.sail:595)));(E_aux(E_app(Id_aux(Id("_get_Satp64_Mode"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:597)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),model/riscv_types.sail:295)),model/riscv_types.sail:295))]),model/riscv_types.sail:295)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_sys_regs.sail:598),[(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_regs.sail:598)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),model/riscv_types.sail:295)),model/riscv_types.sail:295))]),model/riscv_types.sail:295)),E_aux(E_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:598)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_sys_regs.sail:599),[(P_aux(P_id(Id_aux(Id("Sv32"),model/riscv_sys_regs.sail:599)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),model/riscv_types.sail:295)),model/riscv_types.sail:295))]),model/riscv_types.sail:295)),E_aux(E_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:599)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_sys_regs.sail:600),[(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),model/riscv_types.sail:295)),model/riscv_types.sail:295))]),model/riscv_types.sail:295)),E_aux(E_app(Id_aux(Id("_get_Satp64_bits"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_sys_regs.sail:600)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:595)),model/riscv_sys_regs.sail:595));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Satp32"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Satp32"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Satp32_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_Satp32"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_Satp32"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Satp32_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Satp32_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Satp32_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),Id_aux(Id("Satp32_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Satp32_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Satp32_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp32_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp32_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(31),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Satp32_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Satp32_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Satp32_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),Id_aux(Id("Satp32_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_Satp32_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_Satp32_bits"),:1));(Id_aux(Id("_set_Satp32_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Satp32_Mode"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Satp32_Mode"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),Id_aux(Id("Satp32_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(31),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(31),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Satp32_Mode"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Satp32_Mode"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp32_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp32_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(31),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Satp32_Mode"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Satp32_Mode"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Satp32_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),Id_aux(Id("Satp32_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Mode"),:1),[(Id_aux(Id("_update_Satp32_Mode"),:1))]));(DEF_overload(Id_aux(Id("_mod_Mode"),:1),[(Id_aux(Id("_get_Satp32_Mode"),:1));(Id_aux(Id("_set_Satp32_Mode"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Satp32_Asid"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Satp32_Asid"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),Id_aux(Id("Satp32_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(30),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(22),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(30),Unknown),Nexp_aux(Nexp_constant(22),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Satp32_Asid"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Satp32_Asid"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp32_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp32_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(30),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(22),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(8),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Satp32_Asid"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Satp32_Asid"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Satp32_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),Id_aux(Id("Satp32_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(30),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(30),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(22),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(8),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Asid"),:1),[(Id_aux(Id("_update_Satp32_Asid"),:1))]));(DEF_overload(Id_aux(Id("_mod_Asid"),:1),[(Id_aux(Id("_get_Satp32_Asid"),:1));(Id_aux(Id("_set_Satp32_Asid"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Satp32_PPN"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Satp32_PPN"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),Id_aux(Id("Satp32_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(21),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(21),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Satp32_PPN"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Satp32_PPN"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp32_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Satp32_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(21),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(21),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(21),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Satp32_PPN"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Satp32_PPN"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Satp32_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),Id_aux(Id("Satp32_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(21),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(21),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(21),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_PPN"),:1),[(Id_aux(Id("_update_Satp32_PPN"),:1))]));(DEF_overload(Id_aux(Id("_mod_PPN"),:1),[(Id_aux(Id("_get_Satp32_PPN"),:1));(Id_aux(Id("_set_Satp32_PPN"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_satp32"),model/riscv_sys_regs.sail:610),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:610)),model/riscv_sys_regs.sail:610));(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:610),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),model/riscv_sys_regs.sail:610))]),model/riscv_sys_regs.sail:610));(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:610),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),model/riscv_sys_regs.sail:610))]),model/riscv_sys_regs.sail:610))],Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:610),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),model/riscv_sys_regs.sail:610))]),model/riscv_sys_regs.sail:610),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:610),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),model/riscv_sys_regs.sail:610))]),model/riscv_sys_regs.sail:610)),model/riscv_sys_regs.sail:610),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_satp32"),model/riscv_sys_regs.sail:610),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:610)),model/riscv_sys_regs.sail:610),P_aux(P_id(Id_aux(Id("a"),model/riscv_sys_regs.sail:610)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:610)),model/riscv_sys_regs.sail:610))),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:610)),model/riscv_sys_regs.sail:610)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:610),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),model/riscv_sys_regs.sail:610))]),model/riscv_sys_regs.sail:610),P_aux(P_id(Id_aux(Id("o"),model/riscv_sys_regs.sail:610)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:610),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),model/riscv_sys_regs.sail:610))]),model/riscv_sys_regs.sail:610),P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:610)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:610)),model/riscv_sys_regs.sail:610));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_regs.sail:610-613)),E_aux(E_block([(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_regs.sail:612)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:610)),model/riscv_sys_regs.sail:610));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:610)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:616))]),model/riscv_sys_regs.sail:616),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_sys_regs.sail:616))]),model/riscv_sys_regs.sail:616),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:616)),model/riscv_sys_regs.sail:616),Id_aux(Id("tselect"),model/riscv_sys_regs.sail:616)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("PmpAddrMatchType_of_num"),model/riscv_pmp_regs.sail:3),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("PmpAddrMatchType_of_num"),model/riscv_pmp_regs.sail:3),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_regs.sail:3)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("TOR"),model/riscv_pmp_regs.sail:3)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("NA4"),model/riscv_pmp_regs.sail:3)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("NAPOT"),model/riscv_pmp_regs.sail:3)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_PmpAddrMatchType"),model/riscv_pmp_regs.sail:3),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_PmpAddrMatchType"),model/riscv_pmp_regs.sail:3),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("OFF"),model/riscv_pmp_regs.sail:3)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("TOR"),model/riscv_pmp_regs.sail:3)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("NA4"),model/riscv_pmp_regs.sail:3)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("NAPOT"),model/riscv_pmp_regs.sail:3)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)),E_aux(E_lit(L_aux(L_num(3),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_PmpAddrMatchType"),model/riscv_pmp_regs.sail:3),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_PmpAddrMatchType"),model/riscv_pmp_regs.sail:3),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_regs.sail:3)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)));(E_aux(E_id(Id_aux(Id("TOR"),model/riscv_pmp_regs.sail:3)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)));(E_aux(E_id(Id_aux(Id("NA4"),model/riscv_pmp_regs.sail:3)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)));(E_aux(E_id(Id_aux(Id("NAPOT"),model/riscv_pmp_regs.sail:3)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmpAddrMatchType_of_bits"),model/riscv_pmp_regs.sail:5),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:5)),model/riscv_pmp_regs.sail:5),Effect_aux(Effect_set([]),model/riscv_pmp_regs.sail:5)),model/riscv_pmp_regs.sail:5)),model/riscv_pmp_regs.sail:5))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmpAddrMatchType_of_bits"),model/riscv_pmp_regs.sail:6),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bs"),model/riscv_pmp_regs.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("bs"),model/riscv_pmp_regs.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("00"),model/riscv_pmp_regs.sail:8)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_regs.sail:8)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_pmp_regs.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("TOR"),model/riscv_pmp_regs.sail:9)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("10"),model/riscv_pmp_regs.sail:10)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("NA4"),model/riscv_pmp_regs.sail:10)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_pmp_regs.sail:11)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("NAPOT"),model/riscv_pmp_regs.sail:11)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:5)),model/riscv_pmp_regs.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:5)),model/riscv_pmp_regs.sail:5))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:5)),model/riscv_pmp_regs.sail:5),Effect_aux(Effect_set([]),model/riscv_pmp_regs.sail:5)),model/riscv_pmp_regs.sail:5)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_regs.sail:15),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:15)),model/riscv_pmp_regs.sail:15))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_pmp_regs.sail:15)),model/riscv_pmp_regs.sail:15)),model/riscv_pmp_regs.sail:15))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_regs.sail:16),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bs"),model/riscv_pmp_regs.sail:16)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:15)),model/riscv_pmp_regs.sail:15)),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("bs"),model/riscv_pmp_regs.sail:17)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:15)),model/riscv_pmp_regs.sail:15)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("OFF"),model/riscv_pmp_regs.sail:18)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:15)),model/riscv_pmp_regs.sail:15)),E_aux(E_lit(L_aux(L_bin("00"),model/riscv_pmp_regs.sail:18)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("TOR"),model/riscv_pmp_regs.sail:19)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:15)),model/riscv_pmp_regs.sail:15)),E_aux(E_lit(L_aux(L_bin("01"),model/riscv_pmp_regs.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("NA4"),model/riscv_pmp_regs.sail:20)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:15)),model/riscv_pmp_regs.sail:15)),E_aux(E_lit(L_aux(L_bin("10"),model/riscv_pmp_regs.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("NAPOT"),model/riscv_pmp_regs.sail:21)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:15)),model/riscv_pmp_regs.sail:15)),E_aux(E_lit(L_aux(L_bin("11"),model/riscv_pmp_regs.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:15)),model/riscv_pmp_regs.sail:15))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_pmp_regs.sail:15)),model/riscv_pmp_regs.sail:15)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Pmpcfg_ent"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Pmpcfg_ent"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Pmpcfg_ent_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_Pmpcfg_ent"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_Pmpcfg_ent"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Pmpcfg_ent_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Pmpcfg_ent_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Pmpcfg_ent_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Pmpcfg_ent_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Pmpcfg_ent_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Pmpcfg_ent_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_Pmpcfg_ent_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1));(Id_aux(Id("_set_Pmpcfg_ent_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Pmpcfg_ent_L"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Pmpcfg_ent_L"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(7),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Pmpcfg_ent_L"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Pmpcfg_ent_L"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Pmpcfg_ent_L"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Pmpcfg_ent_L"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Pmpcfg_ent_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_L"),:1),[(Id_aux(Id("_update_Pmpcfg_ent_L"),:1))]));(DEF_overload(Id_aux(Id("_mod_L"),:1),[(Id_aux(Id("_get_Pmpcfg_ent_L"),:1));(Id_aux(Id("_set_Pmpcfg_ent_L"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Pmpcfg_ent_A"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Pmpcfg_ent_A"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Pmpcfg_ent_A"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Pmpcfg_ent_A"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Pmpcfg_ent_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_A"),:1),[(Id_aux(Id("_update_Pmpcfg_ent_A"),:1))]));(DEF_overload(Id_aux(Id("_mod_A"),:1),[(Id_aux(Id("_get_Pmpcfg_ent_A"),:1));(Id_aux(Id("_set_Pmpcfg_ent_A"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Pmpcfg_ent_X"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Pmpcfg_ent_X"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(2),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Pmpcfg_ent_X"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Pmpcfg_ent_X"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Pmpcfg_ent_X"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Pmpcfg_ent_X"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Pmpcfg_ent_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_X"),:1),[(Id_aux(Id("_update_Pmpcfg_ent_X"),:1))]));(DEF_overload(Id_aux(Id("_mod_X"),:1),[(Id_aux(Id("_get_Pmpcfg_ent_X"),:1));(Id_aux(Id("_set_Pmpcfg_ent_X"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Pmpcfg_ent_W"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Pmpcfg_ent_W"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Pmpcfg_ent_W"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Pmpcfg_ent_W"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Pmpcfg_ent_W"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Pmpcfg_ent_W"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Pmpcfg_ent_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_W"),:1),[(Id_aux(Id("_update_Pmpcfg_ent_W"),:1))]));(DEF_overload(Id_aux(Id("_mod_W"),:1),[(Id_aux(Id("_get_Pmpcfg_ent_W"),:1));(Id_aux(Id("_set_Pmpcfg_ent_W"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Pmpcfg_ent_R"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Pmpcfg_ent_R"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Pmpcfg_ent_R"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Pmpcfg_ent_R"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Pmpcfg_ent_R"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Pmpcfg_ent_R"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Pmpcfg_ent_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),Id_aux(Id("Pmpcfg_ent_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_R"),:1),[(Id_aux(Id("_update_Pmpcfg_ent_R"),:1))]));(DEF_overload(Id_aux(Id("_mod_R"),:1),[(Id_aux(Id("_get_Pmpcfg_ent_R"),:1));(Id_aux(Id("_set_Pmpcfg_ent_R"),:1))]));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:35))]),model/riscv_pmp_regs.sail:35),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:35))]),model/riscv_pmp_regs.sail:35),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:35)),model/riscv_pmp_regs.sail:35),Id_aux(Id("pmp0cfg"),model/riscv_pmp_regs.sail:35)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:35)),model/riscv_pmp_regs.sail:35))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:36))]),model/riscv_pmp_regs.sail:36),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:36))]),model/riscv_pmp_regs.sail:36),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:36)),model/riscv_pmp_regs.sail:36),Id_aux(Id("pmp1cfg"),model/riscv_pmp_regs.sail:36)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:36)),model/riscv_pmp_regs.sail:36))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:37))]),model/riscv_pmp_regs.sail:37),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:37))]),model/riscv_pmp_regs.sail:37),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:37)),model/riscv_pmp_regs.sail:37),Id_aux(Id("pmp2cfg"),model/riscv_pmp_regs.sail:37)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:37)),model/riscv_pmp_regs.sail:37))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:38))]),model/riscv_pmp_regs.sail:38),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:38))]),model/riscv_pmp_regs.sail:38),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:38)),model/riscv_pmp_regs.sail:38),Id_aux(Id("pmp3cfg"),model/riscv_pmp_regs.sail:38)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:38)),model/riscv_pmp_regs.sail:38))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:39))]),model/riscv_pmp_regs.sail:39),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:39))]),model/riscv_pmp_regs.sail:39),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:39)),model/riscv_pmp_regs.sail:39),Id_aux(Id("pmp4cfg"),model/riscv_pmp_regs.sail:39)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:39)),model/riscv_pmp_regs.sail:39))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:40))]),model/riscv_pmp_regs.sail:40),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:40))]),model/riscv_pmp_regs.sail:40),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:40)),model/riscv_pmp_regs.sail:40),Id_aux(Id("pmp5cfg"),model/riscv_pmp_regs.sail:40)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:40)),model/riscv_pmp_regs.sail:40))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:41))]),model/riscv_pmp_regs.sail:41),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:41))]),model/riscv_pmp_regs.sail:41),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:41)),model/riscv_pmp_regs.sail:41),Id_aux(Id("pmp6cfg"),model/riscv_pmp_regs.sail:41)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:41)),model/riscv_pmp_regs.sail:41))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:42))]),model/riscv_pmp_regs.sail:42),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:42))]),model/riscv_pmp_regs.sail:42),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:42)),model/riscv_pmp_regs.sail:42),Id_aux(Id("pmp7cfg"),model/riscv_pmp_regs.sail:42)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:42)),model/riscv_pmp_regs.sail:42))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:43))]),model/riscv_pmp_regs.sail:43),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:43))]),model/riscv_pmp_regs.sail:43),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:43)),model/riscv_pmp_regs.sail:43),Id_aux(Id("pmp8cfg"),model/riscv_pmp_regs.sail:43)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:43)),model/riscv_pmp_regs.sail:43))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:44))]),model/riscv_pmp_regs.sail:44),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:44))]),model/riscv_pmp_regs.sail:44),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:44)),model/riscv_pmp_regs.sail:44),Id_aux(Id("pmp9cfg"),model/riscv_pmp_regs.sail:44)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:44)),model/riscv_pmp_regs.sail:44))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:45))]),model/riscv_pmp_regs.sail:45),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:45))]),model/riscv_pmp_regs.sail:45),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:45)),model/riscv_pmp_regs.sail:45),Id_aux(Id("pmp10cfg"),model/riscv_pmp_regs.sail:45)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:45)),model/riscv_pmp_regs.sail:45))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:46))]),model/riscv_pmp_regs.sail:46),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:46))]),model/riscv_pmp_regs.sail:46),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:46)),model/riscv_pmp_regs.sail:46),Id_aux(Id("pmp11cfg"),model/riscv_pmp_regs.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:46)),model/riscv_pmp_regs.sail:46))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:47))]),model/riscv_pmp_regs.sail:47),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:47))]),model/riscv_pmp_regs.sail:47),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:47)),model/riscv_pmp_regs.sail:47),Id_aux(Id("pmp12cfg"),model/riscv_pmp_regs.sail:47)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:47)),model/riscv_pmp_regs.sail:47))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:48))]),model/riscv_pmp_regs.sail:48),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:48))]),model/riscv_pmp_regs.sail:48),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:48)),model/riscv_pmp_regs.sail:48),Id_aux(Id("pmp13cfg"),model/riscv_pmp_regs.sail:48)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:48)),model/riscv_pmp_regs.sail:48))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:49))]),model/riscv_pmp_regs.sail:49),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:49))]),model/riscv_pmp_regs.sail:49),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:49)),model/riscv_pmp_regs.sail:49),Id_aux(Id("pmp14cfg"),model/riscv_pmp_regs.sail:49)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:49)),model/riscv_pmp_regs.sail:49))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:50))]),model/riscv_pmp_regs.sail:50),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:50))]),model/riscv_pmp_regs.sail:50),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:50)),model/riscv_pmp_regs.sail:50),Id_aux(Id("pmp15cfg"),model/riscv_pmp_regs.sail:50)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:50)),model/riscv_pmp_regs.sail:50))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:54))]),model/riscv_pmp_regs.sail:54),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:54))]),model/riscv_pmp_regs.sail:54),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:54)),model/riscv_pmp_regs.sail:54),Id_aux(Id("pmpaddr0"),model/riscv_pmp_regs.sail:54)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:55))]),model/riscv_pmp_regs.sail:55),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:55))]),model/riscv_pmp_regs.sail:55),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:55)),model/riscv_pmp_regs.sail:55),Id_aux(Id("pmpaddr1"),model/riscv_pmp_regs.sail:55)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:56))]),model/riscv_pmp_regs.sail:56),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:56))]),model/riscv_pmp_regs.sail:56),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:56)),model/riscv_pmp_regs.sail:56),Id_aux(Id("pmpaddr2"),model/riscv_pmp_regs.sail:56)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:57))]),model/riscv_pmp_regs.sail:57),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:57))]),model/riscv_pmp_regs.sail:57),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:57)),model/riscv_pmp_regs.sail:57),Id_aux(Id("pmpaddr3"),model/riscv_pmp_regs.sail:57)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:58))]),model/riscv_pmp_regs.sail:58),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:58))]),model/riscv_pmp_regs.sail:58),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:58)),model/riscv_pmp_regs.sail:58),Id_aux(Id("pmpaddr4"),model/riscv_pmp_regs.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:59))]),model/riscv_pmp_regs.sail:59),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:59))]),model/riscv_pmp_regs.sail:59),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:59)),model/riscv_pmp_regs.sail:59),Id_aux(Id("pmpaddr5"),model/riscv_pmp_regs.sail:59)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:60))]),model/riscv_pmp_regs.sail:60),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:60))]),model/riscv_pmp_regs.sail:60),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:60)),model/riscv_pmp_regs.sail:60),Id_aux(Id("pmpaddr6"),model/riscv_pmp_regs.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:61))]),model/riscv_pmp_regs.sail:61),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:61))]),model/riscv_pmp_regs.sail:61),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:61)),model/riscv_pmp_regs.sail:61),Id_aux(Id("pmpaddr7"),model/riscv_pmp_regs.sail:61)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:62))]),model/riscv_pmp_regs.sail:62),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:62))]),model/riscv_pmp_regs.sail:62),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:62)),model/riscv_pmp_regs.sail:62),Id_aux(Id("pmpaddr8"),model/riscv_pmp_regs.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:63))]),model/riscv_pmp_regs.sail:63),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:63))]),model/riscv_pmp_regs.sail:63),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:63)),model/riscv_pmp_regs.sail:63),Id_aux(Id("pmpaddr9"),model/riscv_pmp_regs.sail:63)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:64))]),model/riscv_pmp_regs.sail:64),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:64))]),model/riscv_pmp_regs.sail:64),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:64)),model/riscv_pmp_regs.sail:64),Id_aux(Id("pmpaddr10"),model/riscv_pmp_regs.sail:64)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:65))]),model/riscv_pmp_regs.sail:65),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:65))]),model/riscv_pmp_regs.sail:65),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:65)),model/riscv_pmp_regs.sail:65),Id_aux(Id("pmpaddr11"),model/riscv_pmp_regs.sail:65)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:66))]),model/riscv_pmp_regs.sail:66),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:66))]),model/riscv_pmp_regs.sail:66),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:66)),model/riscv_pmp_regs.sail:66),Id_aux(Id("pmpaddr12"),model/riscv_pmp_regs.sail:66)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:67))]),model/riscv_pmp_regs.sail:67),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:67))]),model/riscv_pmp_regs.sail:67),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:67)),model/riscv_pmp_regs.sail:67),Id_aux(Id("pmpaddr13"),model/riscv_pmp_regs.sail:67)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:68))]),model/riscv_pmp_regs.sail:68),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:68))]),model/riscv_pmp_regs.sail:68),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:68)),model/riscv_pmp_regs.sail:68),Id_aux(Id("pmpaddr14"),model/riscv_pmp_regs.sail:68)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:69))]),model/riscv_pmp_regs.sail:69),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:69))]),model/riscv_pmp_regs.sail:69),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:69)),model/riscv_pmp_regs.sail:69),Id_aux(Id("pmpaddr15"),model/riscv_pmp_regs.sail:69)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmpReadCfgReg"),model/riscv_pmp_regs.sail:73),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_pmp_regs.sail:73),Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),model/riscv_pmp_regs.sail:73),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73),Nexp_aux(Nexp_constant(4),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73))]),model/riscv_pmp_regs.sail:73),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_pmp_regs.sail:73),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73))]),model/riscv_pmp_regs.sail:73))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:73))]),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmpReadCfgReg"),model/riscv_pmp_regs.sail:74),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("n"),model/riscv_pmp_regs.sail:74)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_pmp_regs.sail:75)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_case(E_aux(E_id(Id_aux(Id("n"),model/riscv_pmp_regs.sail:76)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),model/riscv_pmp_regs.sail:77)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp3cfg"),model/riscv_pmp_regs.sail:77)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:38)),model/riscv_pmp_regs.sail:38)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp2cfg"),model/riscv_pmp_regs.sail:77)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:37)),model/riscv_pmp_regs.sail:37)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp1cfg"),model/riscv_pmp_regs.sail:77)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:36)),model/riscv_pmp_regs.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp0cfg"),model/riscv_pmp_regs.sail:77)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:35)),model/riscv_pmp_regs.sail:35)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),model/riscv_pmp_regs.sail:78)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp7cfg"),model/riscv_pmp_regs.sail:78)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:42)),model/riscv_pmp_regs.sail:42)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp6cfg"),model/riscv_pmp_regs.sail:78)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:41)),model/riscv_pmp_regs.sail:41)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp5cfg"),model/riscv_pmp_regs.sail:78)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:40)),model/riscv_pmp_regs.sail:40)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp4cfg"),model/riscv_pmp_regs.sail:78)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:39)),model/riscv_pmp_regs.sail:39)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),model/riscv_pmp_regs.sail:79)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp11cfg"),model/riscv_pmp_regs.sail:79)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:46)),model/riscv_pmp_regs.sail:46)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp10cfg"),model/riscv_pmp_regs.sail:79)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:45)),model/riscv_pmp_regs.sail:45)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp9cfg"),model/riscv_pmp_regs.sail:79)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:44)),model/riscv_pmp_regs.sail:44)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp8cfg"),model/riscv_pmp_regs.sail:79)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:43)),model/riscv_pmp_regs.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(3),model/riscv_pmp_regs.sail:80)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp15cfg"),model/riscv_pmp_regs.sail:80)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:50)),model/riscv_pmp_regs.sail:50)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp14cfg"),model/riscv_pmp_regs.sail:80)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:49)),model/riscv_pmp_regs.sail:49)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp13cfg"),model/riscv_pmp_regs.sail:80)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:48)),model/riscv_pmp_regs.sail:48)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp12cfg"),model/riscv_pmp_regs.sail:80)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:47)),model/riscv_pmp_regs.sail:47)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("n"),model/riscv_pmp_regs.sail:82)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),model/riscv_pmp_regs.sail:83)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp7cfg"),model/riscv_pmp_regs.sail:83)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:42)),model/riscv_pmp_regs.sail:42)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp6cfg"),model/riscv_pmp_regs.sail:83)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:41)),model/riscv_pmp_regs.sail:41)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp5cfg"),model/riscv_pmp_regs.sail:83)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:40)),model/riscv_pmp_regs.sail:40)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp4cfg"),model/riscv_pmp_regs.sail:83)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:39)),model/riscv_pmp_regs.sail:39)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp3cfg"),model/riscv_pmp_regs.sail:83)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:38)),model/riscv_pmp_regs.sail:38)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp2cfg"),model/riscv_pmp_regs.sail:83)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:37)),model/riscv_pmp_regs.sail:37)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp1cfg"),model/riscv_pmp_regs.sail:83)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:36)),model/riscv_pmp_regs.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp0cfg"),model/riscv_pmp_regs.sail:83)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:35)),model/riscv_pmp_regs.sail:35)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),model/riscv_pmp_regs.sail:84)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp15cfg"),model/riscv_pmp_regs.sail:84)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:50)),model/riscv_pmp_regs.sail:50)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp14cfg"),model/riscv_pmp_regs.sail:84)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:49)),model/riscv_pmp_regs.sail:49)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp13cfg"),model/riscv_pmp_regs.sail:84)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:48)),model/riscv_pmp_regs.sail:48)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp12cfg"),model/riscv_pmp_regs.sail:84)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:47)),model/riscv_pmp_regs.sail:47)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp11cfg"),model/riscv_pmp_regs.sail:84)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:46)),model/riscv_pmp_regs.sail:46)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp10cfg"),model/riscv_pmp_regs.sail:84)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:45)),model/riscv_pmp_regs.sail:45)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp9cfg"),model/riscv_pmp_regs.sail:84)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:44)),model/riscv_pmp_regs.sail:44)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_bits"),:1),[(E_aux(E_id(Id_aux(Id("pmp8cfg"),model/riscv_pmp_regs.sail:84)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:43)),model/riscv_pmp_regs.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),:1),Nexp_aux(Nexp_constant(8),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:73))]),model/riscv_pmp_regs.sail:73)),model/riscv_pmp_regs.sail:73)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:89),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89));(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_pmp_regs.sail:89),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))]),model/riscv_pmp_regs.sail:89))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:89),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89),P_aux(P_id(Id_aux(Id("cfg"),model/riscv_pmp_regs.sail:89)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_pmp_regs.sail:89),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))]),model/riscv_pmp_regs.sail:89),P_aux(P_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pmp_regs.sail:89)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pmp_regs.sail:89)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pmp_regs.sail:89)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_regs.sail:89-90)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_L"),:1),[(E_aux(E_id(Id_aux(Id("cfg"),model/riscv_pmp_regs.sail:90)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pmp_regs.sail:90)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_id(Id_aux(Id("cfg"),model/riscv_pmp_regs.sail:90)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("Mk_Pmpcfg_ent"),model/riscv_pmp_regs.sail:90),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:90)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pmp_regs.sail:89)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pmp_regs.sail:89)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmpWriteCfgReg"),model/riscv_pmp_regs.sail:92),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_pmp_regs.sail:92),Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),model/riscv_pmp_regs.sail:92),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92),Nexp_aux(Nexp_constant(4),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92))]),model/riscv_pmp_regs.sail:92),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_pmp_regs.sail:92),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92))]),model/riscv_pmp_regs.sail:92));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:92));(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:92))]),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmpWriteCfgReg"),model/riscv_pmp_regs.sail:93),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("n"),model/riscv_pmp_regs.sail:93)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:93)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_regs.sail:93-138)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_pmp_regs.sail:94)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_case(E_aux(E_id(Id_aux(Id("n"),model/riscv_pmp_regs.sail:95)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),model/riscv_pmp_regs.sail:96)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp0cfg"),model/riscv_pmp_regs.sail:96)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:96),[(E_aux(E_id(Id_aux(Id("pmp0cfg"),model/riscv_pmp_regs.sail:96)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:35)),model/riscv_pmp_regs.sail:35)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(7),model/riscv_pmp_regs.sail:96)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_pmp_regs.sail:96)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp1cfg"),model/riscv_pmp_regs.sail:97)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:97),[(E_aux(E_id(Id_aux(Id("pmp1cfg"),model/riscv_pmp_regs.sail:97)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:36)),model/riscv_pmp_regs.sail:36)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:97)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(15),model/riscv_pmp_regs.sail:97)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_pmp_regs.sail:97)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(15),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp2cfg"),model/riscv_pmp_regs.sail:98)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:98),[(E_aux(E_id(Id_aux(Id("pmp2cfg"),model/riscv_pmp_regs.sail:98)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:37)),model/riscv_pmp_regs.sail:37)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:98)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(23),model/riscv_pmp_regs.sail:98)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(16),model/riscv_pmp_regs.sail:98)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(23),Unknown),Nexp_aux(Nexp_constant(16),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp3cfg"),model/riscv_pmp_regs.sail:99)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:99),[(E_aux(E_id(Id_aux(Id("pmp3cfg"),model/riscv_pmp_regs.sail:99)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:38)),model/riscv_pmp_regs.sail:38)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:99)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_pmp_regs.sail:99)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(24),model/riscv_pmp_regs.sail:99)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(24),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),model/riscv_pmp_regs.sail:101)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp4cfg"),model/riscv_pmp_regs.sail:101)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:101),[(E_aux(E_id(Id_aux(Id("pmp4cfg"),model/riscv_pmp_regs.sail:101)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:39)),model/riscv_pmp_regs.sail:39)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:101)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(7),model/riscv_pmp_regs.sail:101)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_pmp_regs.sail:101)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp5cfg"),model/riscv_pmp_regs.sail:102)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:102),[(E_aux(E_id(Id_aux(Id("pmp5cfg"),model/riscv_pmp_regs.sail:102)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:40)),model/riscv_pmp_regs.sail:40)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:102)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(15),model/riscv_pmp_regs.sail:102)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_pmp_regs.sail:102)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(15),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp6cfg"),model/riscv_pmp_regs.sail:103)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:103),[(E_aux(E_id(Id_aux(Id("pmp6cfg"),model/riscv_pmp_regs.sail:103)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:41)),model/riscv_pmp_regs.sail:41)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:103)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(23),model/riscv_pmp_regs.sail:103)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(16),model/riscv_pmp_regs.sail:103)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(23),Unknown),Nexp_aux(Nexp_constant(16),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp7cfg"),model/riscv_pmp_regs.sail:104)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:104),[(E_aux(E_id(Id_aux(Id("pmp7cfg"),model/riscv_pmp_regs.sail:104)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:42)),model/riscv_pmp_regs.sail:42)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_pmp_regs.sail:104)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(24),model/riscv_pmp_regs.sail:104)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(24),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),model/riscv_pmp_regs.sail:106)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp8cfg8"),model/riscv_pmp_regs.sail:106)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:106),[(E_aux(E_id(Id_aux(Id("pmp8cfg"),model/riscv_pmp_regs.sail:106)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:43)),model/riscv_pmp_regs.sail:43)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(7),model/riscv_pmp_regs.sail:106)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_pmp_regs.sail:106)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp9cfg9"),model/riscv_pmp_regs.sail:107)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:107),[(E_aux(E_id(Id_aux(Id("pmp9cfg"),model/riscv_pmp_regs.sail:107)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:44)),model/riscv_pmp_regs.sail:44)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:107)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(15),model/riscv_pmp_regs.sail:107)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_pmp_regs.sail:107)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(15),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp10cfg"),model/riscv_pmp_regs.sail:108)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:108),[(E_aux(E_id(Id_aux(Id("pmp10cfg"),model/riscv_pmp_regs.sail:108)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:45)),model/riscv_pmp_regs.sail:45)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(23),model/riscv_pmp_regs.sail:108)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(16),model/riscv_pmp_regs.sail:108)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(23),Unknown),Nexp_aux(Nexp_constant(16),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp11cfg"),model/riscv_pmp_regs.sail:109)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:109),[(E_aux(E_id(Id_aux(Id("pmp11cfg"),model/riscv_pmp_regs.sail:109)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:46)),model/riscv_pmp_regs.sail:46)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:109)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_pmp_regs.sail:109)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(24),model/riscv_pmp_regs.sail:109)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(24),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(3),model/riscv_pmp_regs.sail:111)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp12cfg"),model/riscv_pmp_regs.sail:111)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:111),[(E_aux(E_id(Id_aux(Id("pmp12cfg"),model/riscv_pmp_regs.sail:111)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:47)),model/riscv_pmp_regs.sail:47)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:111)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(7),model/riscv_pmp_regs.sail:111)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_pmp_regs.sail:111)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp13cfg"),model/riscv_pmp_regs.sail:112)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:112),[(E_aux(E_id(Id_aux(Id("pmp13cfg"),model/riscv_pmp_regs.sail:112)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:48)),model/riscv_pmp_regs.sail:48)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:112)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(15),model/riscv_pmp_regs.sail:112)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_pmp_regs.sail:112)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(15),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp14cfg"),model/riscv_pmp_regs.sail:113)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:113),[(E_aux(E_id(Id_aux(Id("pmp14cfg"),model/riscv_pmp_regs.sail:113)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:49)),model/riscv_pmp_regs.sail:49)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(23),model/riscv_pmp_regs.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(16),model/riscv_pmp_regs.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(23),Unknown),Nexp_aux(Nexp_constant(16),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp15cfg"),model/riscv_pmp_regs.sail:114)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:114),[(E_aux(E_id(Id_aux(Id("pmp15cfg"),model/riscv_pmp_regs.sail:114)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:50)),model/riscv_pmp_regs.sail:50)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_pmp_regs.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(24),model/riscv_pmp_regs.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(24),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92))),None))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_pmp_regs.sail:117)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_case(E_aux(E_id(Id_aux(Id("n"),model/riscv_pmp_regs.sail:118)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),model/riscv_pmp_regs.sail:119)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp0cfg"),model/riscv_pmp_regs.sail:119)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:119),[(E_aux(E_id(Id_aux(Id("pmp0cfg"),model/riscv_pmp_regs.sail:119)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:35)),model/riscv_pmp_regs.sail:35)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:119)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(7),model/riscv_pmp_regs.sail:119)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_pmp_regs.sail:119)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp1cfg"),model/riscv_pmp_regs.sail:120)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:120),[(E_aux(E_id(Id_aux(Id("pmp1cfg"),model/riscv_pmp_regs.sail:120)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:36)),model/riscv_pmp_regs.sail:36)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(15),model/riscv_pmp_regs.sail:120)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_pmp_regs.sail:120)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(15),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp2cfg"),model/riscv_pmp_regs.sail:121)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:121),[(E_aux(E_id(Id_aux(Id("pmp2cfg"),model/riscv_pmp_regs.sail:121)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:37)),model/riscv_pmp_regs.sail:37)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:121)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(23),model/riscv_pmp_regs.sail:121)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(16),model/riscv_pmp_regs.sail:121)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(23),Unknown),Nexp_aux(Nexp_constant(16),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp3cfg"),model/riscv_pmp_regs.sail:122)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:122),[(E_aux(E_id(Id_aux(Id("pmp3cfg"),model/riscv_pmp_regs.sail:122)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:38)),model/riscv_pmp_regs.sail:38)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:122)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_pmp_regs.sail:122)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(24),model/riscv_pmp_regs.sail:122)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(24),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp4cfg"),model/riscv_pmp_regs.sail:123)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:123),[(E_aux(E_id(Id_aux(Id("pmp4cfg"),model/riscv_pmp_regs.sail:123)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:39)),model/riscv_pmp_regs.sail:39)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:123)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(39),model/riscv_pmp_regs.sail:123)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_pmp_regs.sail:123)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(39),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp5cfg"),model/riscv_pmp_regs.sail:124)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:124),[(E_aux(E_id(Id_aux(Id("pmp5cfg"),model/riscv_pmp_regs.sail:124)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:40)),model/riscv_pmp_regs.sail:40)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:124)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(47),model/riscv_pmp_regs.sail:124)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(47),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(40),model/riscv_pmp_regs.sail:124)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(40),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(47),Unknown),Nexp_aux(Nexp_constant(40),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp6cfg"),model/riscv_pmp_regs.sail:125)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:125),[(E_aux(E_id(Id_aux(Id("pmp6cfg"),model/riscv_pmp_regs.sail:125)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:41)),model/riscv_pmp_regs.sail:41)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(55),model/riscv_pmp_regs.sail:125)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(48),model/riscv_pmp_regs.sail:125)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(55),Unknown),Nexp_aux(Nexp_constant(48),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp7cfg"),model/riscv_pmp_regs.sail:126)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:126),[(E_aux(E_id(Id_aux(Id("pmp7cfg"),model/riscv_pmp_regs.sail:126)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:42)),model/riscv_pmp_regs.sail:42)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:126)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(63),model/riscv_pmp_regs.sail:126)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(56),model/riscv_pmp_regs.sail:126)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(56),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(2),model/riscv_pmp_regs.sail:128)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp8cfg8"),model/riscv_pmp_regs.sail:128)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:128),[(E_aux(E_id(Id_aux(Id("pmp8cfg"),model/riscv_pmp_regs.sail:128)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:43)),model/riscv_pmp_regs.sail:43)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:128)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(7),model/riscv_pmp_regs.sail:128)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_pmp_regs.sail:128)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp9cfg9"),model/riscv_pmp_regs.sail:129)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:129),[(E_aux(E_id(Id_aux(Id("pmp9cfg"),model/riscv_pmp_regs.sail:129)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:44)),model/riscv_pmp_regs.sail:44)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(15),model/riscv_pmp_regs.sail:129)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_pmp_regs.sail:129)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(15),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp10cfg"),model/riscv_pmp_regs.sail:130)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:130),[(E_aux(E_id(Id_aux(Id("pmp10cfg"),model/riscv_pmp_regs.sail:130)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:45)),model/riscv_pmp_regs.sail:45)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(23),model/riscv_pmp_regs.sail:130)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(23),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(16),model/riscv_pmp_regs.sail:130)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(23),Unknown),Nexp_aux(Nexp_constant(16),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp11cfg"),model/riscv_pmp_regs.sail:131)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:131),[(E_aux(E_id(Id_aux(Id("pmp11cfg"),model/riscv_pmp_regs.sail:131)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:46)),model/riscv_pmp_regs.sail:46)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:131)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_pmp_regs.sail:131)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(24),model/riscv_pmp_regs.sail:131)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(24),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(24),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp12cfg"),model/riscv_pmp_regs.sail:132)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:132),[(E_aux(E_id(Id_aux(Id("pmp12cfg"),model/riscv_pmp_regs.sail:132)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:47)),model/riscv_pmp_regs.sail:47)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(39),model/riscv_pmp_regs.sail:132)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_pmp_regs.sail:132)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(39),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp13cfg"),model/riscv_pmp_regs.sail:133)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:133),[(E_aux(E_id(Id_aux(Id("pmp13cfg"),model/riscv_pmp_regs.sail:133)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:48)),model/riscv_pmp_regs.sail:48)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:133)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(47),model/riscv_pmp_regs.sail:133)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(47),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(40),model/riscv_pmp_regs.sail:133)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(40),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(47),Unknown),Nexp_aux(Nexp_constant(40),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp14cfg"),model/riscv_pmp_regs.sail:134)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:134),[(E_aux(E_id(Id_aux(Id("pmp14cfg"),model/riscv_pmp_regs.sail:134)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:49)),model/riscv_pmp_regs.sail:49)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(55),model/riscv_pmp_regs.sail:134)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(48),model/riscv_pmp_regs.sail:134)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(55),Unknown),Nexp_aux(Nexp_constant(48),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp15cfg"),model/riscv_pmp_regs.sail:135)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89)),E_aux(E_app(Id_aux(Id("pmpWriteCfg"),model/riscv_pmp_regs.sail:135),[(E_aux(E_id(Id_aux(Id("pmp15cfg"),model/riscv_pmp_regs.sail:135)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:50)),model/riscv_pmp_regs.sail:50)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:135)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(63),model/riscv_pmp_regs.sail:135)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(56),model/riscv_pmp_regs.sail:135)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(56),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:89)),model/riscv_pmp_regs.sail:89))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92))),None))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)),E_aux(E_lit(L_aux(L_unit,model/riscv_pmp_regs.sail:137)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:92));(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:92))]),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmpWriteAddr"),model/riscv_pmp_regs.sail:140),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:140)),model/riscv_pmp_regs.sail:140));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:140)),model/riscv_pmp_regs.sail:140));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:140)),model/riscv_pmp_regs.sail:140))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:140)),model/riscv_pmp_regs.sail:140),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:140)),model/riscv_pmp_regs.sail:140)),model/riscv_pmp_regs.sail:140),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmpWriteAddr"),model/riscv_pmp_regs.sail:140),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:140)),model/riscv_pmp_regs.sail:140),P_aux(P_id(Id_aux(Id("cfg"),model/riscv_pmp_regs.sail:140)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:140)),model/riscv_pmp_regs.sail:140))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:140)),model/riscv_pmp_regs.sail:140)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:140)),model/riscv_pmp_regs.sail:140),P_aux(P_id(Id_aux(Id("reg"),model/riscv_pmp_regs.sail:140)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:140)),model/riscv_pmp_regs.sail:140),P_aux(P_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:140)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:140)),model/riscv_pmp_regs.sail:140));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_regs.sail:140-143)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_pmp_regs.sail:141)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_L"),:1),[(E_aux(E_id(Id_aux(Id("cfg"),model/riscv_pmp_regs.sail:142)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:140)),model/riscv_pmp_regs.sail:140)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pmp_regs.sail:142)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_id(Id_aux(Id("reg"),model/riscv_pmp_regs.sail:142)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:142)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_L"),:1),[(E_aux(E_id(Id_aux(Id("cfg"),model/riscv_pmp_regs.sail:143)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:140)),model/riscv_pmp_regs.sail:140)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pmp_regs.sail:143)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_id(Id_aux(Id("reg"),model/riscv_pmp_regs.sail:143)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_pmp_regs.sail:143),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_pmp_regs.sail:143)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(53),model/riscv_pmp_regs.sail:143)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(53),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_pmp_regs.sail:143)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(53),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:140)),model/riscv_pmp_regs.sail:140));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmpAddrRange"),model/riscv_pmp_control.sail:9),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:9)),model/riscv_pmp_control.sail:9));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:9)),model/riscv_pmp_control.sail:9));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:9)),model/riscv_pmp_control.sail:9))],Typ_aux(Typ_id(Id_aux(Id("pmp_addr_range"),model/riscv_pmp_control.sail:9)),model/riscv_pmp_control.sail:9),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("pmp_addr_range"),model/riscv_pmp_control.sail:9)),model/riscv_pmp_control.sail:9)),model/riscv_pmp_control.sail:9),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmpAddrRange"),model/riscv_pmp_control.sail:9),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:9)),model/riscv_pmp_control.sail:9),P_aux(P_id(Id_aux(Id("cfg"),model/riscv_pmp_control.sail:9)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:9)),model/riscv_pmp_control.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:9)),model/riscv_pmp_control.sail:9)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:9)),model/riscv_pmp_control.sail:9),P_aux(P_id(Id_aux(Id("pmpaddr"),model/riscv_pmp_control.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:9)),model/riscv_pmp_control.sail:9),P_aux(P_id(Id_aux(Id("prev_pmpaddr"),model/riscv_pmp_control.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:9)),model/riscv_pmp_control.sail:9));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:9-25)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_of_bits"),model/riscv_pmp_control.sail:10),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("cfg"),model/riscv_pmp_control.sail:10)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:9)),model/riscv_pmp_control.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:5)),model/riscv_pmp_regs.sail:5)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:11)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:5)),model/riscv_pmp_regs.sail:5)),E_aux(E_app(Id_aux(Id("None"),model/riscv_pmp_control.sail:11),[(E_aux(E_lit(L_aux(L_unit,model/riscv_pmp_control.sail:11)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("TOR"),model/riscv_pmp_control.sail:12)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:5)),model/riscv_pmp_regs.sail:5)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("Some"),model/riscv_pmp_control.sail:12),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("shiftl"),model/prelude.sail:169),[(E_aux(E_id(Id_aux(Id("prev_pmpaddr"),model/riscv_pmp_control.sail:12)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_pmp_control.sail:12)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("shiftl"),model/prelude.sail:169),[(E_aux(E_id(Id_aux(Id("pmpaddr"),model/riscv_pmp_control.sail:12)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_pmp_control.sail:12)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("NA4"),model/riscv_pmp_control.sail:13)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:5)),model/riscv_pmp_regs.sail:5)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("lo"),model/riscv_pmp_control.sail:16)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("shiftl"),model/prelude.sail:169),[(E_aux(E_id(Id_aux(Id("pmpaddr"),model/riscv_pmp_control.sail:16)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_pmp_control.sail:16)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("Some"),model/riscv_pmp_control.sail:17),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("lo"),model/riscv_pmp_control.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("add_bits_int"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("lo"),model/riscv_pmp_control.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_pmp_control.sail:17)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("NAPOT"),model/riscv_pmp_control.sail:19)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:5)),model/riscv_pmp_regs.sail:5)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("mask"),model/riscv_pmp_control.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("xor_vec"),model/prelude.sail:69),[(E_aux(E_id(Id_aux(Id("pmpaddr"),model/riscv_pmp_control.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("add_bits_int"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("pmpaddr"),model/riscv_pmp_control.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_pmp_control.sail:19)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("lo"),model/riscv_pmp_control.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_id(Id_aux(Id("pmpaddr"),model/riscv_pmp_control.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("not_vec"),model/prelude.sail:37),[(E_aux(E_id(Id_aux(Id("mask"),model/riscv_pmp_control.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("len"),model/riscv_pmp_control.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("add_bits_int"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("mask"),model/riscv_pmp_control.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_pmp_control.sail:21)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("Some"),model/riscv_pmp_control.sail:22),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("shiftl"),model/prelude.sail:169),[(E_aux(E_id(Id_aux(Id("lo"),model/riscv_pmp_control.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_pmp_control.sail:22)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("shiftl"),model/prelude.sail:169),[(E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("lo"),model/riscv_pmp_control.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("len"),model/riscv_pmp_control.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_pmp_control.sail:22)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:9)),model/riscv_pmp_control.sail:9));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmpCheckRWX"),model/riscv_pmp_control.sail:29),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:29),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:29))]),model/riscv_pmp_control.sail:29))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29),Effect_aux(Effect_set([]),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmpCheckRWX"),model/riscv_pmp_control.sail:30),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("ent"),model/riscv_pmp_control.sail:30)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29)));(P_aux(P_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:30)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:29),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:29))]),model/riscv_pmp_control.sail:29)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:29),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:29))]),model/riscv_pmp_control.sail:29))]),model/riscv_pmp_control.sail:30-37)),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:31)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:29),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:29))]),model/riscv_pmp_control.sail:29)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Read"),model/riscv_pmp_control.sail:32),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_pmp_control.sail:32)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:101)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:29),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:29))]),model/riscv_pmp_control.sail:29)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_R"),:1),[(E_aux(E_id(Id_aux(Id("ent"),model/riscv_pmp_control.sail:32)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pmp_control.sail:32)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Write"),model/riscv_pmp_control.sail:33),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_pmp_control.sail:33)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:102)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:29),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:29))]),model/riscv_pmp_control.sail:29)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_W"),:1),[(E_aux(E_id(Id_aux(Id("ent"),model/riscv_pmp_control.sail:33)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pmp_control.sail:33)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("ReadWrite"),model/riscv_pmp_control.sail:34),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_pmp_control.sail:34)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:103)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:29),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:29))]),model/riscv_pmp_control.sail:29)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_R"),:1),[(E_aux(E_id(Id_aux(Id("ent"),model/riscv_pmp_control.sail:34)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pmp_control.sail:34)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_W"),:1),[(E_aux(E_id(Id_aux(Id("ent"),model/riscv_pmp_control.sail:34)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pmp_control.sail:34)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Execute"),model/riscv_pmp_control.sail:35),[(P_aux(P_lit(L_aux(L_unit,model/riscv_pmp_control.sail:35)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:29),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:29))]),model/riscv_pmp_control.sail:29)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_X"),:1),[(E_aux(E_id(Id_aux(Id("ent"),model/riscv_pmp_control.sail:35)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pmp_control.sail:35)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:29),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:29))]),model/riscv_pmp_control.sail:29))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29),Effect_aux(Effect_set([]),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmpCheckPerms"),model/riscv_pmp_control.sail:40),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:40),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:40))]),model/riscv_pmp_control.sail:40));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40),Effect_aux(Effect_set([]),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmpCheckPerms"),model/riscv_pmp_control.sail:41),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("ent"),model/riscv_pmp_control.sail:41)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40)));(P_aux(P_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:41)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:40),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:40))]),model/riscv_pmp_control.sail:40)));(P_aux(P_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:41)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:40),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:40))]),model/riscv_pmp_control.sail:40));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40))]),model/riscv_pmp_control.sail:41-48)),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:42)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_pmp_control.sail:43)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Pmpcfg_ent_L"),:1),[(E_aux(E_id(Id_aux(Id("ent"),model/riscv_pmp_control.sail:43)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pmp_control.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("pmpCheckRWX"),model/riscv_pmp_control.sail:44),[(E_aux(E_id(Id_aux(Id("ent"),model/riscv_pmp_control.sail:44)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:44)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:40),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:40))]),model/riscv_pmp_control.sail:40)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:45)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40)),E_aux(E_app(Id_aux(Id("pmpCheckRWX"),model/riscv_pmp_control.sail:46),[(E_aux(E_id(Id_aux(Id("ent"),model/riscv_pmp_control.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:46)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:40),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:40))]),model/riscv_pmp_control.sail:40)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:29)),model/riscv_pmp_control.sail:29))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:40),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:40))]),model/riscv_pmp_control.sail:40));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40),Effect_aux(Effect_set([]),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmpAddrMatch_of_num"),model/riscv_pmp_control.sail:52),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmpAddrMatch_of_num"),model/riscv_pmp_control.sail:52),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("PMP_NoMatch"),model/riscv_pmp_control.sail:52)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("PMP_PartialMatch"),model/riscv_pmp_control.sail:52)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("PMP_Match"),model/riscv_pmp_control.sail:52)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_pmpAddrMatch"),model/riscv_pmp_control.sail:52),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_pmpAddrMatch"),model/riscv_pmp_control.sail:52),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_NoMatch"),model/riscv_pmp_control.sail:52)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_PartialMatch"),model/riscv_pmp_control.sail:52)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Match"),model/riscv_pmp_control.sail:52)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_pmpAddrMatch"),model/riscv_pmp_control.sail:52),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_pmpAddrMatch"),model/riscv_pmp_control.sail:52),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("PMP_NoMatch"),model/riscv_pmp_control.sail:52)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown)));(E_aux(E_id(Id_aux(Id("PMP_PartialMatch"),model/riscv_pmp_control.sail:52)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown)));(E_aux(E_id(Id_aux(Id("PMP_Match"),model/riscv_pmp_control.sail:52)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmpMatchAddr"),model/riscv_pmp_control.sail:54),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54));(Typ_aux(Typ_id(Id_aux(Id("pmp_addr_range"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54))],Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmpMatchAddr"),model/riscv_pmp_control.sail:54),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54),P_aux(P_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:54)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54),P_aux(P_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:54)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("pmp_addr_range"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54),P_aux(P_id(Id_aux(Id("rng"),model/riscv_pmp_control.sail:54)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:54-67)),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("rng"),model/riscv_pmp_control.sail:55)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_pmp_control.sail:56),[(P_aux(P_lit(L_aux(L_unit,model/riscv_pmp_control.sail:56)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7)),E_aux(E_id(Id_aux(Id("PMP_NoMatch"),model/riscv_pmp_control.sail:56)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_pmp_control.sail:57),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("lo"),model/riscv_pmp_control.sail:57)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("hi"),model/riscv_pmp_control.sail:57)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7)),E_aux(E_if(E_aux(E_app(Id_aux(Operator("<_u"),model/riscv_pmp_control.sail:57),[(E_aux(E_id(Id_aux(Id("hi"),model/riscv_pmp_control.sail:57)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("lo"),model/riscv_pmp_control.sail:57)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:149)),model/prelude.sail:149)),E_aux(E_id(Id_aux(Id("PMP_NoMatch"),model/riscv_pmp_control.sail:58)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Operator("<_u"),model/riscv_pmp_control.sail:60),[(E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("lo"),model/riscv_pmp_control.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:149)),model/prelude.sail:149)));(E_aux(E_app(Id_aux(Operator("<_u"),model/riscv_pmp_control.sail:60),[(E_aux(E_id(Id_aux(Id("hi"),model/riscv_pmp_control.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:149)),model/prelude.sail:149)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex2658#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex2660#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex2658#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex2660#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("PMP_NoMatch"),model/riscv_pmp_control.sail:61)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Operator("<=_u"),model/riscv_pmp_control.sail:62),[(E_aux(E_id(Id_aux(Id("lo"),model/riscv_pmp_control.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:151)),model/prelude.sail:151)));(E_aux(E_app(Id_aux(Operator("<=_u"),model/riscv_pmp_control.sail:62),[(E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("hi"),model/riscv_pmp_control.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:151)),model/prelude.sail:151)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("PMP_Match"),model/riscv_pmp_control.sail:63)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown)),E_aux(E_id(Id_aux(Id("PMP_PartialMatch"),model/riscv_pmp_control.sail:64)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:52)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54))),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54)))]),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54))),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54))),None))]),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54)))]),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7))],Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmpMatch_of_num"),model/riscv_pmp_control.sail:69),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown)),Unknown))]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmpMatch_of_num"),model/riscv_pmp_control.sail:69),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:69)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:69)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:69)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("num_of_pmpMatch"),model/riscv_pmp_control.sail:69),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("num_of_pmpMatch"),model/riscv_pmp_control.sail:69),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("arg#"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:69)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown)),E_aux(E_lit(L_aux(L_num(0),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:69)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown)),E_aux(E_lit(L_aux(L_num(1),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:69)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown)),E_aux(E_lit(L_aux(L_num(2),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown))],Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'e"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'e"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_pmpMatch"),model/riscv_pmp_control.sail:69),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_pmpMatch"),model/riscv_pmp_control.sail:69),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:69)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown)));(E_aux(E_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:69)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown)));(E_aux(E_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:69)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:71),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:71)),model/riscv_pmp_control.sail:71));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:71)),model/riscv_pmp_control.sail:71));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:71),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_pmp_control.sail:71)),model/riscv_pmp_control.sail:71)),model/riscv_pmp_control.sail:71))]),model/riscv_pmp_control.sail:71));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:71)),model/riscv_pmp_control.sail:71));(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72))],Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:71-72),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:71),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:71)),model/riscv_pmp_control.sail:71),P_aux(P_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:71)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:71)),model/riscv_pmp_control.sail:71),P_aux(P_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:71)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:71),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_pmp_control.sail:71)),model/riscv_pmp_control.sail:71)),model/riscv_pmp_control.sail:71))]),model/riscv_pmp_control.sail:71),P_aux(P_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:71)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:71),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:71))]),model/riscv_pmp_control.sail:71))),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:71),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:71))]),model/riscv_pmp_control.sail:71)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:71)),model/riscv_pmp_control.sail:71),P_aux(P_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:71)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:71)),model/riscv_pmp_control.sail:71))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:71)),model/riscv_pmp_control.sail:71)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72),P_aux(P_id(Id_aux(Id("ent"),model/riscv_pmp_control.sail:72)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72))),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72),P_aux(P_id(Id_aux(Id("pmpaddr"),model/riscv_pmp_control.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72),P_aux(P_id(Id_aux(Id("prev_pmpaddr"),model/riscv_pmp_control.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:71),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:71))]),model/riscv_pmp_control.sail:71));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:71)),model/riscv_pmp_control.sail:71));(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:71-81)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rng"),model/riscv_pmp_control.sail:73)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7)),E_aux(E_app(Id_aux(Id("pmpAddrRange"),model/riscv_pmp_control.sail:73),[(E_aux(E_id(Id_aux(Id("ent"),model/riscv_pmp_control.sail:73)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)));(E_aux(E_id(Id_aux(Id("pmpaddr"),model/riscv_pmp_control.sail:73)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("prev_pmpaddr"),model/riscv_pmp_control.sail:73)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchAddr"),model/riscv_pmp_control.sail:74),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:74)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:74)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rng"),model/riscv_pmp_control.sail:74)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:7),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pmp_control.sail:7)),model/riscv_pmp_control.sail:7))]),model/riscv_pmp_control.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_NoMatch"),model/riscv_pmp_control.sail:75)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54)),E_aux(E_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:75)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_PartialMatch"),model/riscv_pmp_control.sail:76)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54)),E_aux(E_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:76)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Match"),model/riscv_pmp_control.sail:77)),Typ_aux(Typ_id(Id_aux(Id("pmpAddrMatch"),model/riscv_pmp_control.sail:54)),model/riscv_pmp_control.sail:54)),E_aux(E_if(E_aux(E_app(Id_aux(Id("pmpCheckPerms"),model/riscv_pmp_control.sail:77),[(E_aux(E_id(Id_aux(Id("ent"),model/riscv_pmp_control.sail:77)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:77)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:71),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:71))]),model/riscv_pmp_control.sail:71)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:77)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:71)),model/riscv_pmp_control.sail:71)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:40)),model/riscv_pmp_control.sail:40)),E_aux(E_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:78)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown)),E_aux(E_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:79)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:69)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72))),None))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72))),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:71),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:71))]),model/riscv_pmp_control.sail:71));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:71)),model/riscv_pmp_control.sail:71));(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmpCheck"),model/riscv_pmp_control.sail:85),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_pmp_control.sail:85),Kid_aux(Var("'n"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85));(QI_aux(QI_constraint(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85),Nexp_aux(Nexp_constant(0),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_pmp_control.sail:85),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:35))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_pmp_control.sail:85),Kid_aux(Var("'n"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85));(QI_aux(QI_constraint(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85),Nexp_aux(Nexp_constant(0),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:85-86),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmpCheck"),model/riscv_pmp_control.sail:85),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85),P_aux(P_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:85)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_pmp_control.sail:85),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85),P_aux(P_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:85)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_pmp_control.sail:85),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85),P_aux(P_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:85)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85))),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85),P_aux(P_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:85)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_pmp_control.sail:85),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85-166)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_control.sail:87)),model/riscv_pmp_control.sail:87),P_aux(P_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:87)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("to_bits"),model/riscv_pmp_control.sail:87),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:87)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88),P_aux(P_id(Id_aux(Id("check"),model/riscv_pmp_control.sail:88)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex2825#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:89),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:89)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:89)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp0cfg"),model/riscv_pmp_control.sail:89)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:35)),model/riscv_pmp_regs.sail:35)));(E_aux(E_id(Id_aux(Id("pmpaddr0"),model/riscv_pmp_control.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("zeros_implicit"),model/prelude.sail:124),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:90)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:90)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:91)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:91)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:92)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:93),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:93)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:93)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:93)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:93)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp1cfg"),model/riscv_pmp_control.sail:93)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:36)),model/riscv_pmp_regs.sail:36)));(E_aux(E_id(Id_aux(Id("pmpaddr1"),model/riscv_pmp_control.sail:93)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pmpaddr0"),model/riscv_pmp_control.sail:93)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:94)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:94)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:95)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:95)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:96)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:97),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:97)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:97)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:97)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:97)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp2cfg"),model/riscv_pmp_control.sail:97)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:37)),model/riscv_pmp_regs.sail:37)));(E_aux(E_id(Id_aux(Id("pmpaddr2"),model/riscv_pmp_control.sail:97)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pmpaddr1"),model/riscv_pmp_control.sail:97)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:98)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:98)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:99)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:99)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:100)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:101),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:101)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:101)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:101)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:101)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp3cfg"),model/riscv_pmp_control.sail:101)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:38)),model/riscv_pmp_regs.sail:38)));(E_aux(E_id(Id_aux(Id("pmpaddr3"),model/riscv_pmp_control.sail:101)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pmpaddr2"),model/riscv_pmp_control.sail:101)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:102)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:102)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:103)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:103)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:104)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:105),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:105)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:105)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:105)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:105)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp4cfg"),model/riscv_pmp_control.sail:105)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:39)),model/riscv_pmp_regs.sail:39)));(E_aux(E_id(Id_aux(Id("pmpaddr4"),model/riscv_pmp_control.sail:105)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pmpaddr3"),model/riscv_pmp_control.sail:105)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:106)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:106)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:107)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:107)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:108)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:109),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:109)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:109)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:109)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:109)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp5cfg"),model/riscv_pmp_control.sail:109)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:40)),model/riscv_pmp_regs.sail:40)));(E_aux(E_id(Id_aux(Id("pmpaddr5"),model/riscv_pmp_control.sail:109)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pmpaddr4"),model/riscv_pmp_control.sail:109)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:110)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:110)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:111)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:111)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:112)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:113),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:113)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:113)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp6cfg"),model/riscv_pmp_control.sail:113)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:41)),model/riscv_pmp_regs.sail:41)));(E_aux(E_id(Id_aux(Id("pmpaddr6"),model/riscv_pmp_control.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pmpaddr5"),model/riscv_pmp_control.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:114)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:115)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:115)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:116)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:117),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:117)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:117)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp7cfg"),model/riscv_pmp_control.sail:117)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:42)),model/riscv_pmp_regs.sail:42)));(E_aux(E_id(Id_aux(Id("pmpaddr7"),model/riscv_pmp_control.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pmpaddr6"),model/riscv_pmp_control.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:118)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:118)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:119)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:119)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:120)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:121),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:121)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:121)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:121)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:121)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp8cfg"),model/riscv_pmp_control.sail:121)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:43)),model/riscv_pmp_regs.sail:43)));(E_aux(E_id(Id_aux(Id("pmpaddr8"),model/riscv_pmp_control.sail:121)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pmpaddr7"),model/riscv_pmp_control.sail:121)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:122)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:122)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:123)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:123)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:124)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:125),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:125)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:125)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp9cfg"),model/riscv_pmp_control.sail:125)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:44)),model/riscv_pmp_regs.sail:44)));(E_aux(E_id(Id_aux(Id("pmpaddr9"),model/riscv_pmp_control.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pmpaddr8"),model/riscv_pmp_control.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:126)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:126)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:127)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:127)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:128)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:129),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:129)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:129)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp10cfg"),model/riscv_pmp_control.sail:129)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:45)),model/riscv_pmp_regs.sail:45)));(E_aux(E_id(Id_aux(Id("pmpaddr10"),model/riscv_pmp_control.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pmpaddr9"),model/riscv_pmp_control.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:130)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:130)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:131)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:131)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:132)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:133),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:133)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:133)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:133)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:133)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp11cfg"),model/riscv_pmp_control.sail:133)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:46)),model/riscv_pmp_regs.sail:46)));(E_aux(E_id(Id_aux(Id("pmpaddr11"),model/riscv_pmp_control.sail:133)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pmpaddr10"),model/riscv_pmp_control.sail:133)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:134)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:134)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:135)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:135)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:136)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:137),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:137)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:137)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:137)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:137)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp12cfg"),model/riscv_pmp_control.sail:137)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:47)),model/riscv_pmp_regs.sail:47)));(E_aux(E_id(Id_aux(Id("pmpaddr12"),model/riscv_pmp_control.sail:137)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pmpaddr11"),model/riscv_pmp_control.sail:137)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:138)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:138)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:139)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:139)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:140)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:141),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:141)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:141)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:141)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:141)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp13cfg"),model/riscv_pmp_control.sail:141)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:48)),model/riscv_pmp_regs.sail:48)));(E_aux(E_id(Id_aux(Id("pmpaddr13"),model/riscv_pmp_control.sail:141)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pmpaddr12"),model/riscv_pmp_control.sail:141)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:142)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:142)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:143)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:143)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:144)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:145),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:145)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:145)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp14cfg"),model/riscv_pmp_control.sail:145)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:49)),model/riscv_pmp_regs.sail:49)));(E_aux(E_id(Id_aux(Id("pmpaddr14"),model/riscv_pmp_control.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pmpaddr13"),model/riscv_pmp_control.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:146)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:147)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:147)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:148)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpMatchEntry"),model/riscv_pmp_control.sail:149),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_pmp_control.sail:149)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_pmp_control.sail:149)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:149)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:149)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)));(E_aux(E_id(Id_aux(Id("pmp15cfg"),model/riscv_pmp_control.sail:149)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:50)),model/riscv_pmp_regs.sail:50)));(E_aux(E_id(Id_aux(Id("pmpaddr15"),model/riscv_pmp_control.sail:149)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pmpaddr14"),model/riscv_pmp_control.sail:149)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Success"),model/riscv_pmp_control.sail:150)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:150)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Fail"),model/riscv_pmp_control.sail:151)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:151)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("PMP_Continue"),model/riscv_pmp_control.sail:152)),Typ_aux(Typ_id(Id_aux(Id("pmpMatch"),model/riscv_pmp_control.sail:72)),model/riscv_pmp_control.sail:72)),E_aux(E_case(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pmp_control.sail:152)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_pmp_control.sail:153)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),E_aux(E_lit(L_aux(L_true,model/riscv_pmp_control.sail:153)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),E_aux(E_lit(L_aux(L_false,model/riscv_pmp_control.sail:154)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pmp_control.sail:88)),model/riscv_pmp_control.sail:88))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_id(Id_aux(Id("check"),model/riscv_pmp_control.sail:158)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex2825#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("None"),model/riscv_pmp_control.sail:159),[(E_aux(E_lit(L_aux(L_unit,model/riscv_pmp_control.sail:159)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("acc"),model/riscv_pmp_control.sail:160)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Read"),model/riscv_pmp_control.sail:161),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_pmp_control.sail:161)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:101)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_pmp_control.sail:161),[(E_aux(E_app(Id_aux(Id("E_Load_Access_Fault"),model/riscv_pmp_control.sail:161),[(E_aux(E_lit(L_aux(L_unit,model/riscv_pmp_control.sail:161)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Write"),model/riscv_pmp_control.sail:162),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_pmp_control.sail:162)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:102)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_pmp_control.sail:162),[(E_aux(E_app(Id_aux(Id("E_SAMO_Access_Fault"),model/riscv_pmp_control.sail:162),[(E_aux(E_lit(L_aux(L_unit,model/riscv_pmp_control.sail:162)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("ReadWrite"),model/riscv_pmp_control.sail:163),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_pmp_control.sail:163)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:103)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_pmp_control.sail:163),[(E_aux(E_app(Id_aux(Id("E_SAMO_Access_Fault"),model/riscv_pmp_control.sail:163),[(E_aux(E_lit(L_aux(L_unit,model/riscv_pmp_control.sail:163)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Execute"),model/riscv_pmp_control.sail:164),[(P_aux(P_lit(L_aux(L_unit,model/riscv_pmp_control.sail:164)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_pmp_control.sail:164),[(E_aux(E_app(Id_aux(Id("E_Fetch_Access_Fault"),model/riscv_pmp_control.sail:164),[(E_aux(E_lit(L_aux(L_unit,model/riscv_pmp_control.sail:164)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_pmp_control.sail:85),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pmp_control.sail:85),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pmp_control.sail:85))]),model/riscv_pmp_control.sail:85));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pmp_control.sail:85)),model/riscv_pmp_control.sail:85))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("init_pmp"),model/riscv_pmp_control.sail:168),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_control.sail:168)),model/riscv_pmp_control.sail:168),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_pmp_regs.sail:35));(BE_aux(BE_wreg,model/riscv_pmp_regs.sail:35))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_control.sail:168)),model/riscv_pmp_control.sail:168)),model/riscv_pmp_control.sail:168),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("init_pmp"),model/riscv_pmp_control.sail:168),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_pmp_control.sail:168)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp0cfg"),model/riscv_pmp_control.sail:169)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp0cfg"),model/riscv_pmp_control.sail:169)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:35)),model/riscv_pmp_regs.sail:35)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:169),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:169)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp1cfg"),model/riscv_pmp_control.sail:170)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp1cfg"),model/riscv_pmp_control.sail:170)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:36)),model/riscv_pmp_regs.sail:36)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:170),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:170)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp2cfg"),model/riscv_pmp_control.sail:171)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp2cfg"),model/riscv_pmp_control.sail:171)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:37)),model/riscv_pmp_regs.sail:37)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:171),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:171)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp3cfg"),model/riscv_pmp_control.sail:172)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp3cfg"),model/riscv_pmp_control.sail:172)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:38)),model/riscv_pmp_regs.sail:38)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:172),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:172)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp4cfg"),model/riscv_pmp_control.sail:173)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp4cfg"),model/riscv_pmp_control.sail:173)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:39)),model/riscv_pmp_regs.sail:39)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:173),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:173)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp5cfg"),model/riscv_pmp_control.sail:174)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp5cfg"),model/riscv_pmp_control.sail:174)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:40)),model/riscv_pmp_regs.sail:40)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:174),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:174)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp6cfg"),model/riscv_pmp_control.sail:175)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp6cfg"),model/riscv_pmp_control.sail:175)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:41)),model/riscv_pmp_regs.sail:41)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:175),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:175)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp7cfg"),model/riscv_pmp_control.sail:176)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp7cfg"),model/riscv_pmp_control.sail:176)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:42)),model/riscv_pmp_regs.sail:42)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:176),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:176)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp8cfg"),model/riscv_pmp_control.sail:177)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp8cfg"),model/riscv_pmp_control.sail:177)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:43)),model/riscv_pmp_regs.sail:43)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:177),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:177)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp9cfg"),model/riscv_pmp_control.sail:178)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp9cfg"),model/riscv_pmp_control.sail:178)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:44)),model/riscv_pmp_regs.sail:44)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:178),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:178)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp10cfg"),model/riscv_pmp_control.sail:179)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp10cfg"),model/riscv_pmp_control.sail:179)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:45)),model/riscv_pmp_regs.sail:45)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:179),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:179)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp11cfg"),model/riscv_pmp_control.sail:180)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp11cfg"),model/riscv_pmp_control.sail:180)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:46)),model/riscv_pmp_regs.sail:46)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:180),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:180)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp12cfg"),model/riscv_pmp_control.sail:181)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp12cfg"),model/riscv_pmp_control.sail:181)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:47)),model/riscv_pmp_regs.sail:47)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:181),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:181)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp13cfg"),model/riscv_pmp_control.sail:182)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp13cfg"),model/riscv_pmp_control.sail:182)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:48)),model/riscv_pmp_regs.sail:48)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:182),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:182)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp14cfg"),model/riscv_pmp_control.sail:183)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp14cfg"),model/riscv_pmp_control.sail:183)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:49)),model/riscv_pmp_regs.sail:49)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:183),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:183)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmp15cfg"),model/riscv_pmp_control.sail:184)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Pmpcfg_ent_A"),:1),[(E_aux(E_id(Id_aux(Id("pmp15cfg"),model/riscv_pmp_control.sail:184)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:50)),model/riscv_pmp_regs.sail:50)));(E_aux(E_app(Id_aux(Id("pmpAddrMatchType_to_bits"),model/riscv_pmp_control.sail:184),[(E_aux(E_id(Id_aux(Id("OFF"),model/riscv_pmp_control.sail:184)),Typ_aux(Typ_id(Id_aux(Id("PmpAddrMatchType"),model/riscv_pmp_regs.sail:3)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_pmp_regs.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_control.sail:168)),model/riscv_pmp_control.sail:168))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_control.sail:168)),model/riscv_pmp_control.sail:168),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_init_regs"),model/riscv_ext_regs.sail:5),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ext_regs.sail:5)),model/riscv_ext_regs.sail:5))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ext_regs.sail:5)),model/riscv_ext_regs.sail:5),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_ext_regs.sail:5))]),model/riscv_ext_regs.sail:5)),model/riscv_ext_regs.sail:5)),model/riscv_ext_regs.sail:5))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_init_regs"),model/riscv_ext_regs.sail:6),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_ext_regs.sail:6)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_ext_regs.sail:6)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ext_regs.sail:5)),model/riscv_ext_regs.sail:5))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ext_regs.sail:5)),model/riscv_ext_regs.sail:5),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_ext_regs.sail:5))]),model/riscv_ext_regs.sail:5)),model/riscv_ext_regs.sail:5)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_rvfi_init"),model/riscv_ext_regs.sail:13),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ext_regs.sail:13)),model/riscv_ext_regs.sail:13))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ext_regs.sail:13)),model/riscv_ext_regs.sail:13),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_ext_regs.sail:13))]),model/riscv_ext_regs.sail:13)),model/riscv_ext_regs.sail:13)),model/riscv_ext_regs.sail:13))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_rvfi_init"),model/riscv_ext_regs.sail:14),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_ext_regs.sail:14)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_ext_regs.sail:14)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ext_regs.sail:13)),model/riscv_ext_regs.sail:13))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ext_regs.sail:13)),model/riscv_ext_regs.sail:13),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_ext_regs.sail:13))]),model/riscv_ext_regs.sail:13)),model/riscv_ext_regs.sail:13)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_check_CSR"),model/riscv_ext_regs.sail:21),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_ext_regs.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_ext_regs.sail:21)),model/riscv_ext_regs.sail:21));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_ext_regs.sail:21)),model/riscv_ext_regs.sail:21))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_ext_regs.sail:21)),model/riscv_ext_regs.sail:21),Effect_aux(Effect_set([]),model/riscv_ext_regs.sail:21)),model/riscv_ext_regs.sail:21)),model/riscv_ext_regs.sail:21))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_check_CSR"),model/riscv_ext_regs.sail:22),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("csrno"),model/riscv_ext_regs.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_ext_regs.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("p"),model/riscv_ext_regs.sail:22)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_ext_regs.sail:21)),model/riscv_ext_regs.sail:21)));(P_aux(P_id(Id_aux(Id("isWrite"),model/riscv_ext_regs.sail:22)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex2831#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_ext_regs.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_ext_regs.sail:21)),model/riscv_ext_regs.sail:21));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex2831#"),Unknown)),Unknown)),Unknown))]),Unknown))]),model/riscv_ext_regs.sail:22)),E_aux(E_lit(L_aux(L_true,model/riscv_ext_regs.sail:22)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_ext_regs.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_ext_regs.sail:21)),model/riscv_ext_regs.sail:21));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex2831#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_ext_regs.sail:21)),model/riscv_ext_regs.sail:21),Effect_aux(Effect_set([]),model/riscv_ext_regs.sail:21)),model/riscv_ext_regs.sail:21)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_check_CSR_fail"),model/riscv_ext_regs.sail:28),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ext_regs.sail:28)),model/riscv_ext_regs.sail:28))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ext_regs.sail:28)),model/riscv_ext_regs.sail:28),Effect_aux(Effect_set([]),model/riscv_ext_regs.sail:28)),model/riscv_ext_regs.sail:28)),model/riscv_ext_regs.sail:28))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_check_CSR_fail"),model/riscv_ext_regs.sail:29),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_ext_regs.sail:29)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_ext_regs.sail:29)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ext_regs.sail:28)),model/riscv_ext_regs.sail:28))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ext_regs.sail:28)),model/riscv_ext_regs.sail:28),Effect_aux(Effect_set([]),model/riscv_ext_regs.sail:28)),model/riscv_ext_regs.sail:28)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Ext_FetchAddr_Check"),model/riscv_addr_checks_common.sail:9),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/riscv_addr_checks_common.sail:9),Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:9)),model/riscv_addr_checks_common.sail:9)),model/riscv_addr_checks_common.sail:9))]),model/riscv_addr_checks_common.sail:9),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:9)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks_common.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:9)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Ext_FetchAddr_Check"),model/riscv_addr_checks_common.sail:9),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("typ_a"),model/riscv_addr_checks_common.sail:9)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:9)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_addr_checks_common.sail:10)),model/riscv_addr_checks_common.sail:10),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:11)),model/riscv_addr_checks_common.sail:11),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:11)),model/riscv_addr_checks_common.sail:11))),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:11)),model/riscv_addr_checks_common.sail:11)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:11)),model/riscv_addr_checks_common.sail:11))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("Ext_FetchAddr_OK"),model/riscv_addr_checks_common.sail:10),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks_common.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:9)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("Ext_FetchAddr_Error"),model/riscv_addr_checks_common.sail:11),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:11)),model/riscv_addr_checks_common.sail:11)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks_common.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:9)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks_common.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:9)),Unknown)),Unknown))]),:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks_common.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:9)),Unknown)),Unknown))]),:1))),Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks_common.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:9)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks_common.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:9)),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:9)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks_common.sail:9),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:9)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Ext_ControlAddr_Check"),model/riscv_addr_checks_common.sail:14),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/riscv_addr_checks_common.sail:14),Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:14)),model/riscv_addr_checks_common.sail:14)),model/riscv_addr_checks_common.sail:14))]),model/riscv_addr_checks_common.sail:14),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:14)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks_common.sail:14),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:14)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Ext_ControlAddr_Check"),model/riscv_addr_checks_common.sail:14),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("typ_a"),model/riscv_addr_checks_common.sail:14)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:14)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_addr_checks_common.sail:15)),model/riscv_addr_checks_common.sail:15),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:16)),model/riscv_addr_checks_common.sail:16),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:16)),model/riscv_addr_checks_common.sail:16))),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:16)),model/riscv_addr_checks_common.sail:16)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:16)),model/riscv_addr_checks_common.sail:16))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("Ext_ControlAddr_OK"),model/riscv_addr_checks_common.sail:15),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks_common.sail:14),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:14)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("Ext_ControlAddr_Error"),model/riscv_addr_checks_common.sail:16),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:16)),model/riscv_addr_checks_common.sail:16)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks_common.sail:14),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:14)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks_common.sail:14),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:14)),Unknown)),Unknown))]),:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks_common.sail:14),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:14)),Unknown)),Unknown))]),:1))),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks_common.sail:14),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:14)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks_common.sail:14),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:14)),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:14)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks_common.sail:14),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:14)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Ext_DataAddr_Check"),model/riscv_addr_checks_common.sail:19),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/riscv_addr_checks_common.sail:19),Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:19)),model/riscv_addr_checks_common.sail:19)),model/riscv_addr_checks_common.sail:19))]),model/riscv_addr_checks_common.sail:19),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:19)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks_common.sail:19),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:19)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Ext_DataAddr_Check"),model/riscv_addr_checks_common.sail:19),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("typ_a"),model/riscv_addr_checks_common.sail:19)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:19)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_addr_checks_common.sail:20)),model/riscv_addr_checks_common.sail:20),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:21)),model/riscv_addr_checks_common.sail:21),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:21)),model/riscv_addr_checks_common.sail:21))),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:21)),model/riscv_addr_checks_common.sail:21)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:21)),model/riscv_addr_checks_common.sail:21))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("Ext_DataAddr_OK"),model/riscv_addr_checks_common.sail:20),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks_common.sail:19),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:19)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("Ext_DataAddr_Error"),model/riscv_addr_checks_common.sail:21),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:21)),model/riscv_addr_checks_common.sail:21)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks_common.sail:19),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:19)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks_common.sail:19),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:19)),Unknown)),Unknown))]),:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks_common.sail:19),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:19)),Unknown)),Unknown))]),:1))),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks_common.sail:19),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:19)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks_common.sail:19),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:19)),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:19)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks_common.sail:19),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_addr_checks_common.sail:19)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_fetch_check_pc"),model/riscv_addr_checks.sail:12),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_addr_checks.sail:12)),model/riscv_addr_checks.sail:12));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_addr_checks.sail:12)),model/riscv_addr_checks.sail:12))],Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks.sail:12),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_fetch_addr_error"),model/riscv_addr_checks.sail:12)),model/riscv_addr_checks.sail:12)),model/riscv_addr_checks.sail:12))]),model/riscv_addr_checks.sail:12),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks.sail:12),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_fetch_addr_error"),model/riscv_addr_checks.sail:12)),model/riscv_addr_checks.sail:12)),model/riscv_addr_checks.sail:12))]),model/riscv_addr_checks.sail:12)),model/riscv_addr_checks.sail:12),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_fetch_check_pc"),model/riscv_addr_checks.sail:12),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_addr_checks.sail:12)),model/riscv_addr_checks.sail:12),P_aux(P_id(Id_aux(Id("start_pc"),model/riscv_addr_checks.sail:12)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_addr_checks.sail:12)),model/riscv_addr_checks.sail:12),P_aux(P_id(Id_aux(Id("pc"),model/riscv_addr_checks.sail:12)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_addr_checks.sail:12-13)),E_aux(E_app(Id_aux(Id("Ext_FetchAddr_OK"),model/riscv_addr_checks.sail:13),[(E_aux(E_id(Id_aux(Id("pc"),model/riscv_addr_checks.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks_common.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks.sail:12),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:12))]),model/riscv_addr_checks.sail:12),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_handle_fetch_check_error"),model/riscv_addr_checks.sail:15),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ext_fetch_addr_error"),model/riscv_addr_checks.sail:15)),model/riscv_addr_checks.sail:15))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:15)),model/riscv_addr_checks.sail:15),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:15)),model/riscv_addr_checks.sail:15)),model/riscv_addr_checks.sail:15),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_handle_fetch_check_error"),model/riscv_addr_checks.sail:15),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_fetch_addr_error"),model/riscv_addr_checks.sail:15)),model/riscv_addr_checks.sail:15),P_aux(P_id(Id_aux(Id("err"),model/riscv_addr_checks.sail:15)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3)),E_aux(E_lit(L_aux(L_unit,model/riscv_addr_checks.sail:16)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:15)),model/riscv_addr_checks.sail:15),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_control_check_addr"),model/riscv_addr_checks.sail:32),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_addr_checks.sail:32)),model/riscv_addr_checks.sail:32))],Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks.sail:32),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_control_addr_error"),model/riscv_addr_checks.sail:32)),model/riscv_addr_checks.sail:32)),model/riscv_addr_checks.sail:32))]),model/riscv_addr_checks.sail:32),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks.sail:32),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_control_addr_error"),model/riscv_addr_checks.sail:32)),model/riscv_addr_checks.sail:32)),model/riscv_addr_checks.sail:32))]),model/riscv_addr_checks.sail:32)),model/riscv_addr_checks.sail:32),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_control_check_addr"),model/riscv_addr_checks.sail:32),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_addr_checks.sail:32)),model/riscv_addr_checks.sail:32),P_aux(P_id(Id_aux(Id("pc"),model/riscv_addr_checks.sail:32)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("Ext_ControlAddr_OK"),model/riscv_addr_checks.sail:33),[(E_aux(E_id(Id_aux(Id("pc"),model/riscv_addr_checks.sail:33)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks_common.sail:14),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks.sail:32),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:32))]),model/riscv_addr_checks.sail:32),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_control_check_pc"),model/riscv_addr_checks.sail:36),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_addr_checks.sail:36)),model/riscv_addr_checks.sail:36))],Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_control_addr_error"),model/riscv_addr_checks.sail:36)),model/riscv_addr_checks.sail:36)),model/riscv_addr_checks.sail:36))]),model/riscv_addr_checks.sail:36),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_control_addr_error"),model/riscv_addr_checks.sail:36)),model/riscv_addr_checks.sail:36)),model/riscv_addr_checks.sail:36))]),model/riscv_addr_checks.sail:36)),model/riscv_addr_checks.sail:36),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_control_check_pc"),model/riscv_addr_checks.sail:36),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_addr_checks.sail:36)),model/riscv_addr_checks.sail:36),P_aux(P_id(Id_aux(Id("pc"),model/riscv_addr_checks.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("Ext_ControlAddr_OK"),model/riscv_addr_checks.sail:37),[(E_aux(E_id(Id_aux(Id("pc"),model/riscv_addr_checks.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks_common.sail:14),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:36))]),model/riscv_addr_checks.sail:36),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_handle_control_check_error"),model/riscv_addr_checks.sail:39),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ext_control_addr_error"),model/riscv_addr_checks.sail:39)),model/riscv_addr_checks.sail:39))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:39)),model/riscv_addr_checks.sail:39),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:39)),model/riscv_addr_checks.sail:39)),model/riscv_addr_checks.sail:39),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_handle_control_check_error"),model/riscv_addr_checks.sail:39),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_control_addr_error"),model/riscv_addr_checks.sail:39)),model/riscv_addr_checks.sail:39),P_aux(P_id(Id_aux(Id("err"),model/riscv_addr_checks.sail:39)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:20))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:20)),E_aux(E_lit(L_aux(L_unit,model/riscv_addr_checks.sail:40)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:20))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:39)),model/riscv_addr_checks.sail:39),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_data_get_addr"),model/riscv_addr_checks.sail:49),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_addr_checks.sail:49)),model/riscv_addr_checks.sail:49));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_addr_checks.sail:49)),model/riscv_addr_checks.sail:49));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_addr_checks.sail:49),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_addr_checks.sail:49)),model/riscv_addr_checks.sail:49)),model/riscv_addr_checks.sail:49))]),model/riscv_addr_checks.sail:49));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_addr_checks.sail:49)),model/riscv_addr_checks.sail:49))],Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_data_addr_error"),model/riscv_addr_checks.sail:50)),model/riscv_addr_checks.sail:50)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_regs.sail:45));(BE_aux(BE_rreg,model/riscv_regs.sail:45))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_data_addr_error"),model/riscv_addr_checks.sail:50)),model/riscv_addr_checks.sail:50)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),model/riscv_addr_checks.sail:49-50),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_data_get_addr"),model/riscv_addr_checks.sail:49),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_addr_checks.sail:49)),model/riscv_addr_checks.sail:49),P_aux(P_id(Id_aux(Id("base"),model/riscv_addr_checks.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_addr_checks.sail:49)),model/riscv_addr_checks.sail:49),P_aux(P_id(Id_aux(Id("offset"),model/riscv_addr_checks.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_addr_checks.sail:49),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_addr_checks.sail:49)),model/riscv_addr_checks.sail:49)),model/riscv_addr_checks.sail:49))]),model/riscv_addr_checks.sail:49),P_aux(P_id(Id_aux(Id("acc"),model/riscv_addr_checks.sail:49)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_addr_checks.sail:49),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_addr_checks.sail:49))]),model/riscv_addr_checks.sail:49))),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_addr_checks.sail:49),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_addr_checks.sail:49))]),model/riscv_addr_checks.sail:49)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_addr_checks.sail:49)),model/riscv_addr_checks.sail:49),P_aux(P_id(Id_aux(Id("width"),model/riscv_addr_checks.sail:49)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_addr_checks.sail:49)),model/riscv_addr_checks.sail:49))),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_addr_checks.sail:49)),model/riscv_addr_checks.sail:49)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_addr_checks.sail:49),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_addr_checks.sail:49))]),model/riscv_addr_checks.sail:49));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_addr_checks.sail:49)),model/riscv_addr_checks.sail:49))]),model/riscv_addr_checks.sail:49-52)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("addr"),model/riscv_addr_checks.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("base"),model/riscv_addr_checks.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("offset"),model/riscv_addr_checks.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_app(Id_aux(Id("Ext_DataAddr_OK"),model/riscv_addr_checks.sail:52),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_addr_checks.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks_common.sail:19),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_addr_checks.sail:49),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_addr_checks.sail:49))]),model/riscv_addr_checks.sail:49));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_addr_checks.sail:49)),model/riscv_addr_checks.sail:49))],Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_handle_data_check_error"),model/riscv_addr_checks.sail:54),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ext_data_addr_error"),model/riscv_addr_checks.sail:54)),model/riscv_addr_checks.sail:54))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:54)),model/riscv_addr_checks.sail:54),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:54)),model/riscv_addr_checks.sail:54)),model/riscv_addr_checks.sail:54),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_handle_data_check_error"),model/riscv_addr_checks.sail:54),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_data_addr_error"),model/riscv_addr_checks.sail:54)),model/riscv_addr_checks.sail:54),P_aux(P_id(Id_aux(Id("err"),model/riscv_addr_checks.sail:54)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),E_aux(E_lit(L_aux(L_unit,model/riscv_addr_checks.sail:55)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:54)),model/riscv_addr_checks.sail:54),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_veto_disable_C"),model/riscv_misa_ext.sail:1),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_misa_ext.sail:1)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_false,model/riscv_misa_ext.sail:1)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_regs.sail:81)),model/riscv_sys_regs.sail:81))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:81)),model/riscv_sys_regs.sail:81),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:81))]),model/riscv_sys_regs.sail:81)),model/riscv_sys_regs.sail:81)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:3),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:7),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("000"),model/riscv_csr_map.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("ustatus"),model/riscv_csr_map.sail:7)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:8),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("004"),model/riscv_csr_map.sail:8)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("uie"),model/riscv_csr_map.sail:8)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:9),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("005"),model/riscv_csr_map.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("utvec"),model/riscv_csr_map.sail:9)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:11),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("040"),model/riscv_csr_map.sail:11)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("uscratch"),model/riscv_csr_map.sail:11)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:12),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("041"),model/riscv_csr_map.sail:12)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("uepc"),model/riscv_csr_map.sail:12)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:13),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("042"),model/riscv_csr_map.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("ucause"),model/riscv_csr_map.sail:13)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:14),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("043"),model/riscv_csr_map.sail:14)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("utval"),model/riscv_csr_map.sail:14)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:15),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("044"),model/riscv_csr_map.sail:15)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("uip"),model/riscv_csr_map.sail:15)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:17),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("001"),model/riscv_csr_map.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("fflags"),model/riscv_csr_map.sail:17)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:18),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("002"),model/riscv_csr_map.sail:18)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("frm"),model/riscv_csr_map.sail:18)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:19),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("003"),model/riscv_csr_map.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("fcsr"),model/riscv_csr_map.sail:19)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:21),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("C00"),model/riscv_csr_map.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("cycle"),model/riscv_csr_map.sail:21)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:22),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("C01"),model/riscv_csr_map.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("time"),model/riscv_csr_map.sail:22)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:23),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("C02"),model/riscv_csr_map.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("instret"),model/riscv_csr_map.sail:23)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:24),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("C80"),model/riscv_csr_map.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("cycleh"),model/riscv_csr_map.sail:24)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:25),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("C81"),model/riscv_csr_map.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("timeh"),model/riscv_csr_map.sail:25)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:26),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("C82"),model/riscv_csr_map.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("instreth"),model/riscv_csr_map.sail:26)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:29),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("100"),model/riscv_csr_map.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sstatus"),model/riscv_csr_map.sail:29)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:30),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("102"),model/riscv_csr_map.sail:30)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sedeleg"),model/riscv_csr_map.sail:30)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:31),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("103"),model/riscv_csr_map.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sideleg"),model/riscv_csr_map.sail:31)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:32),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("104"),model/riscv_csr_map.sail:32)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sie"),model/riscv_csr_map.sail:32)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:33),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("105"),model/riscv_csr_map.sail:33)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("stvec"),model/riscv_csr_map.sail:33)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:34),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("106"),model/riscv_csr_map.sail:34)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("scounteren"),model/riscv_csr_map.sail:34)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:36),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("140"),model/riscv_csr_map.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sscratch"),model/riscv_csr_map.sail:36)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:37),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("141"),model/riscv_csr_map.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sepc"),model/riscv_csr_map.sail:37)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:38),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("142"),model/riscv_csr_map.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("scause"),model/riscv_csr_map.sail:38)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:39),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("143"),model/riscv_csr_map.sail:39)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("stval"),model/riscv_csr_map.sail:39)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:40),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("144"),model/riscv_csr_map.sail:40)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sip"),model/riscv_csr_map.sail:40)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:42),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("180"),model/riscv_csr_map.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("satp"),model/riscv_csr_map.sail:42)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:44),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("F11"),model/riscv_csr_map.sail:44)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mvendorid"),model/riscv_csr_map.sail:44)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:45),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("F12"),model/riscv_csr_map.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("marchid"),model/riscv_csr_map.sail:45)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:46),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("F13"),model/riscv_csr_map.sail:46)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mimpid"),model/riscv_csr_map.sail:46)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:47),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("F14"),model/riscv_csr_map.sail:47)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mhartid"),model/riscv_csr_map.sail:47)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:49),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("300"),model/riscv_csr_map.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mstatus"),model/riscv_csr_map.sail:49)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:50),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("301"),model/riscv_csr_map.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("misa"),model/riscv_csr_map.sail:50)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:51),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("302"),model/riscv_csr_map.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("medeleg"),model/riscv_csr_map.sail:51)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:52),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("303"),model/riscv_csr_map.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mideleg"),model/riscv_csr_map.sail:52)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:53),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("304"),model/riscv_csr_map.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mie"),model/riscv_csr_map.sail:53)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:54),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("305"),model/riscv_csr_map.sail:54)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mtvec"),model/riscv_csr_map.sail:54)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:55),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("306"),model/riscv_csr_map.sail:55)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mcounteren"),model/riscv_csr_map.sail:55)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:57),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("340"),model/riscv_csr_map.sail:57)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mscratch"),model/riscv_csr_map.sail:57)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:58),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("341"),model/riscv_csr_map.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mepc"),model/riscv_csr_map.sail:58)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:59),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("342"),model/riscv_csr_map.sail:59)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mcause"),model/riscv_csr_map.sail:59)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:60),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("343"),model/riscv_csr_map.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mtval"),model/riscv_csr_map.sail:60)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:61),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("344"),model/riscv_csr_map.sail:61)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mip"),model/riscv_csr_map.sail:61)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:63),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3A0"),model/riscv_csr_map.sail:63)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpcfg0"),model/riscv_csr_map.sail:63)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:64),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3A1"),model/riscv_csr_map.sail:64)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpcfg1"),model/riscv_csr_map.sail:64)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:65),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3A2"),model/riscv_csr_map.sail:65)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpcfg2"),model/riscv_csr_map.sail:65)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:66),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3A3"),model/riscv_csr_map.sail:66)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpcfg3"),model/riscv_csr_map.sail:66)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:67),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3B0"),model/riscv_csr_map.sail:67)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr0"),model/riscv_csr_map.sail:67)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:68),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3B1"),model/riscv_csr_map.sail:68)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr1"),model/riscv_csr_map.sail:68)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:69),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3B2"),model/riscv_csr_map.sail:69)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr2"),model/riscv_csr_map.sail:69)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:70),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3B3"),model/riscv_csr_map.sail:70)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr3"),model/riscv_csr_map.sail:70)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:71),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3B4"),model/riscv_csr_map.sail:71)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr4"),model/riscv_csr_map.sail:71)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:72),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3B5"),model/riscv_csr_map.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr5"),model/riscv_csr_map.sail:72)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:73),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3B6"),model/riscv_csr_map.sail:73)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr6"),model/riscv_csr_map.sail:73)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:74),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3B7"),model/riscv_csr_map.sail:74)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr7"),model/riscv_csr_map.sail:74)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:75),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3B8"),model/riscv_csr_map.sail:75)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr8"),model/riscv_csr_map.sail:75)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:76),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3B9"),model/riscv_csr_map.sail:76)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr9"),model/riscv_csr_map.sail:76)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:77),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3BA"),model/riscv_csr_map.sail:77)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr10"),model/riscv_csr_map.sail:77)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:78),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3BB"),model/riscv_csr_map.sail:78)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr11"),model/riscv_csr_map.sail:78)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:79),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3BC"),model/riscv_csr_map.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr12"),model/riscv_csr_map.sail:79)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:80),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3BD"),model/riscv_csr_map.sail:80)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr13"),model/riscv_csr_map.sail:80)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:81),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3BE"),model/riscv_csr_map.sail:81)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr14"),model/riscv_csr_map.sail:81)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:82),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("3BF"),model/riscv_csr_map.sail:82)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("pmpaddr15"),model/riscv_csr_map.sail:82)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:84),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("B00"),model/riscv_csr_map.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mcycle"),model/riscv_csr_map.sail:84)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:85),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("B02"),model/riscv_csr_map.sail:85)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("minstret"),model/riscv_csr_map.sail:85)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:86),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("B80"),model/riscv_csr_map.sail:86)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mcycleh"),model/riscv_csr_map.sail:86)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:87),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("B82"),model/riscv_csr_map.sail:87)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("minstreth"),model/riscv_csr_map.sail:87)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:90),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("7a0"),model/riscv_csr_map.sail:90)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("tselect"),model/riscv_csr_map.sail:90)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:91),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("7a1"),model/riscv_csr_map.sail:91)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("tdata1"),model/riscv_csr_map.sail:91)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:92),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("7a2"),model/riscv_csr_map.sail:92)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("tdata2"),model/riscv_csr_map.sail:92)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("csr_name_map"),model/riscv_csr_map.sail:93),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_hex("7a3"),model/riscv_csr_map.sail:93)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("tdata3"),model/riscv_csr_map.sail:93)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("csr_name"),model/riscv_csr_map.sail:95),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:95)),model/riscv_csr_map.sail:95),Effect_aux(Effect_set([]),model/riscv_csr_map.sail:95)),model/riscv_csr_map.sail:95)),model/riscv_csr_map.sail:95))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("csr_name"),model/riscv_csr_map.sail:96),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("csr"),model/riscv_csr_map.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("csr_name_map_forwards"),Unknown),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_csr_map.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:3)),model/riscv_csr_map.sail:3))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:95)),model/riscv_csr_map.sail:95),Effect_aux(Effect_set([]),model/riscv_csr_map.sail:95)),model/riscv_csr_map.sail:95)))]),None)));(DEF_overload(Id_aux(Id("to_str"),model/riscv_csr_map.sail:97),[(Id_aux(Id("csr_name"),model/riscv_csr_map.sail:97))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_is_CSR_defined"),model/riscv_csr_map.sail:110),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:110))]),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_read_CSR"),model/riscv_csr_map.sail:114),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:114),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114)),model/riscv_csr_map.sail:114)),model/riscv_csr_map.sail:114))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_write_CSR"),model/riscv_csr_map.sail:118),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:118));(BE_aux(BE_wreg,model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118)),model/riscv_csr_map.sail:118)),model/riscv_csr_map.sail:118))));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Ustatus"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Ustatus"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Ustatus_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_Ustatus"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_Ustatus"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Ustatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Ustatus_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Ustatus_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),Id_aux(Id("Ustatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Ustatus_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Ustatus_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Ustatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Ustatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Ustatus_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Ustatus_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Ustatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),Id_aux(Id("Ustatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_Ustatus_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_Ustatus_bits"),:1));(Id_aux(Id("_set_Ustatus_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Ustatus_UPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Ustatus_UPIE"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),Id_aux(Id("Ustatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Ustatus_UPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Ustatus_UPIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Ustatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Ustatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Ustatus_UPIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Ustatus_UPIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Ustatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),Id_aux(Id("Ustatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_UPIE"),:1),[(Id_aux(Id("_update_Ustatus_UPIE"),:1))]));(DEF_overload(Id_aux(Id("_mod_UPIE"),:1),[(Id_aux(Id("_get_Ustatus_UPIE"),:1));(Id_aux(Id("_set_Ustatus_UPIE"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Ustatus_UIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Ustatus_UIE"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),Id_aux(Id("Ustatus_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Ustatus_UIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Ustatus_UIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Ustatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Ustatus_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Ustatus_UIE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Ustatus_UIE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Ustatus_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),Id_aux(Id("Ustatus_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_UIE"),:1),[(Id_aux(Id("_update_Ustatus_UIE"),:1))]));(DEF_overload(Id_aux(Id("_mod_UIE"),:1),[(Id_aux(Id("_get_Ustatus_UIE"),:1));(Id_aux(Id("_set_Ustatus_UIE"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lower_sstatus"),model/riscv_next_regs.sail:10),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10))],Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("lower_sstatus"),model/riscv_next_regs.sail:10),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10),P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:10)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("u"),model/riscv_next_regs.sail:11)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Ustatus"),model/riscv_next_regs.sail:11),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_next_regs.sail:11),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_next_regs.sail:11)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("u"),model/riscv_next_regs.sail:12)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Ustatus_UPIE"),:1),[(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:12)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sstatus_UPIE"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:12)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("u"),model/riscv_next_regs.sail:13)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Ustatus_UIE"),:1),[(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:13)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Sstatus_UIE"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:13)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:14)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10))),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10))),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10))),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10))],Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lift_ustatus"),model/riscv_next_regs.sail:17),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17));(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("lift_ustatus"),model/riscv_next_regs.sail:17),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17),P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:17)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17),P_aux(P_id(Id_aux(Id("u"),model/riscv_next_regs.sail:17)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17))),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17));(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17))]),model/riscv_next_regs.sail:17-21)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:18)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sstatus_UPIE"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:18)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17)));(E_aux(E_app(Id_aux(Id("_get_Ustatus_UPIE"),:1),[(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:18)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:19)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Sstatus_UIE"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:19)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Ustatus_UIE"),:1),[(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:19)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:20)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17))),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17));(Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17))],Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_ustatus"),model/riscv_next_regs.sail:23),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_ustatus"),model/riscv_next_regs.sail:23),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23),P_aux(P_id(Id_aux(Id("m"),model/riscv_next_regs.sail:23)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23),P_aux(P_id(Id_aux(Id("v"),model/riscv_next_regs.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_next_regs.sail:23-29)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("u"),model/riscv_next_regs.sail:24)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Ustatus"),model/riscv_next_regs.sail:24),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_next_regs.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:25)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)),E_aux(E_app(Id_aux(Id("lower_mstatus"),model/riscv_next_regs.sail:25),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_next_regs.sail:25)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:26)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17)),E_aux(E_app(Id_aux(Id("lift_ustatus"),model/riscv_next_regs.sail:26),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:26)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)));(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:26)),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("m"),model/riscv_next_regs.sail:27)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)),E_aux(E_app(Id_aux(Id("lift_sstatus"),model/riscv_next_regs.sail:27),[(E_aux(E_id(Id_aux(Id("m"),model/riscv_next_regs.sail:27)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23)));(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:27)),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_next_regs.sail:17)),model/riscv_next_regs.sail:17)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("m"),model/riscv_next_regs.sail:28)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:467)),model/riscv_sys_regs.sail:467)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23))),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_Uinterrupts"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_Uinterrupts"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Uinterrupts_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_Uinterrupts"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_Uinterrupts"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("Uinterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Uinterrupts_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Uinterrupts_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),Id_aux(Id("Uinterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Uinterrupts_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Uinterrupts_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Uinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Uinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Uinterrupts_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Uinterrupts_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Uinterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),Id_aux(Id("Uinterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_Uinterrupts_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_Uinterrupts_bits"),:1));(Id_aux(Id("_set_Uinterrupts_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Uinterrupts_UEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Uinterrupts_UEI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),Id_aux(Id("Uinterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(8),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Uinterrupts_UEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Uinterrupts_UEI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Uinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Uinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Uinterrupts_UEI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Uinterrupts_UEI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Uinterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),Id_aux(Id("Uinterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_UEI"),:1),[(Id_aux(Id("_update_Uinterrupts_UEI"),:1))]));(DEF_overload(Id_aux(Id("_mod_UEI"),:1),[(Id_aux(Id("_get_Uinterrupts_UEI"),:1));(Id_aux(Id("_set_Uinterrupts_UEI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Uinterrupts_UTI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Uinterrupts_UTI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),Id_aux(Id("Uinterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Uinterrupts_UTI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Uinterrupts_UTI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Uinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Uinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Uinterrupts_UTI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Uinterrupts_UTI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Uinterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),Id_aux(Id("Uinterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_UTI"),:1),[(Id_aux(Id("_update_Uinterrupts_UTI"),:1))]));(DEF_overload(Id_aux(Id("_mod_UTI"),:1),[(Id_aux(Id("_get_Uinterrupts_UTI"),:1));(Id_aux(Id("_set_Uinterrupts_UTI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_Uinterrupts_USI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_Uinterrupts_USI"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),Id_aux(Id("Uinterrupts_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_Uinterrupts_USI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_Uinterrupts_USI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Uinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("Uinterrupts_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_Uinterrupts_USI"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_Uinterrupts_USI"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("Uinterrupts_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),Id_aux(Id("Uinterrupts_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_USI"),:1),[(Id_aux(Id("_update_Uinterrupts_USI"),:1))]));(DEF_overload(Id_aux(Id("_mod_USI"),:1),[(Id_aux(Id("_get_Uinterrupts_USI"),:1));(Id_aux(Id("_set_Uinterrupts_USI"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lower_sip"),model/riscv_next_regs.sail:38),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("lower_sip"),model/riscv_next_regs.sail:38),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38),P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:38)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38),P_aux(P_id(Id_aux(Id("d"),model/riscv_next_regs.sail:38)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38))]),model/riscv_next_regs.sail:38-44)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:39)),model/riscv_next_regs.sail:39),P_aux(P_id(Id_aux(Id("u"),model/riscv_next_regs.sail:39)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:39)),model/riscv_next_regs.sail:39))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:39)),model/riscv_next_regs.sail:39)),E_aux(E_app(Id_aux(Id("Mk_Uinterrupts"),model/riscv_next_regs.sail:39),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_next_regs.sail:39),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_next_regs.sail:39)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("u"),model/riscv_next_regs.sail:40)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Uinterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:40)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:39)),model/riscv_next_regs.sail:39)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:40)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_next_regs.sail:40)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("u"),model/riscv_next_regs.sail:41)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Uinterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:41)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:41)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_next_regs.sail:41)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("u"),model/riscv_next_regs.sail:42)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Uinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:42)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:42)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_next_regs.sail:42)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:43)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lower_sie"),model/riscv_next_regs.sail:47),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("lower_sie"),model/riscv_next_regs.sail:47),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47),P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:47)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47),P_aux(P_id(Id_aux(Id("d"),model/riscv_next_regs.sail:47)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47))]),model/riscv_next_regs.sail:47-53)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:48)),model/riscv_next_regs.sail:48),P_aux(P_id(Id_aux(Id("u"),model/riscv_next_regs.sail:48)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:48)),model/riscv_next_regs.sail:48))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:48)),model/riscv_next_regs.sail:48)),E_aux(E_app(Id_aux(Id("Mk_Uinterrupts"),model/riscv_next_regs.sail:48),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_next_regs.sail:48),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_next_regs.sail:48)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("u"),model/riscv_next_regs.sail:49)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Uinterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:49)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:48)),model/riscv_next_regs.sail:48)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:49)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_next_regs.sail:49)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("u"),model/riscv_next_regs.sail:50)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Uinterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:50)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:50)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_next_regs.sail:50)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("u"),model/riscv_next_regs.sail:51)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_Uinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:51)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:51)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_next_regs.sail:51)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:52)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47))],Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lift_uip"),model/riscv_next_regs.sail:56),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56));(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("lift_uip"),model/riscv_next_regs.sail:56),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56),P_aux(P_id(Id_aux(Id("o"),model/riscv_next_regs.sail:56)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56),P_aux(P_id(Id_aux(Id("d"),model/riscv_next_regs.sail:56)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56),P_aux(P_id(Id_aux(Id("u"),model/riscv_next_regs.sail:56)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56));(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56))]),model/riscv_next_regs.sail:56-60)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:57)),model/riscv_next_regs.sail:57),P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:57)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:57)),model/riscv_next_regs.sail:57))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:57)),model/riscv_next_regs.sail:57)),E_aux(E_id(Id_aux(Id("o"),model/riscv_next_regs.sail:57)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:58)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_next_regs.sail:58)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_next_regs.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:58)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:57)),model/riscv_next_regs.sail:57)));(E_aux(E_app(Id_aux(Id("_get_Uinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:58)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:58)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:57)),model/riscv_next_regs.sail:57))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:59)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56));(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_uip"),model/riscv_next_regs.sail:62),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_uip"),model/riscv_next_regs.sail:62),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62),P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:62)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62),P_aux(P_id(Id_aux(Id("d"),model/riscv_next_regs.sail:62)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62),P_aux(P_id(Id_aux(Id("v"),model/riscv_next_regs.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_next_regs.sail:62-64)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("lift_uip"),model/riscv_next_regs.sail:63),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:63)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62)));(E_aux(E_id(Id_aux(Id("d"),model/riscv_next_regs.sail:63)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62)));(E_aux(E_app(Id_aux(Id("Mk_Uinterrupts"),model/riscv_next_regs.sail:63),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_next_regs.sail:63)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:56)),model/riscv_next_regs.sail:56)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lift_uie"),model/riscv_next_regs.sail:67),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67));(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("lift_uie"),model/riscv_next_regs.sail:67),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67),P_aux(P_id(Id_aux(Id("o"),model/riscv_next_regs.sail:67)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67),P_aux(P_id(Id_aux(Id("d"),model/riscv_next_regs.sail:67)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67),P_aux(P_id(Id_aux(Id("u"),model/riscv_next_regs.sail:67)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67))),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67));(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67))]),model/riscv_next_regs.sail:67-73)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:68)),model/riscv_next_regs.sail:68),P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:68)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:68)),model/riscv_next_regs.sail:68))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:68)),model/riscv_next_regs.sail:68)),E_aux(E_id(Id_aux(Id("o"),model/riscv_next_regs.sail:68)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:69)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_next_regs.sail:69)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_next_regs.sail:69)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:69)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:68)),model/riscv_next_regs.sail:68)));(E_aux(E_app(Id_aux(Id("_get_Uinterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:69)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:69)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:68)),model/riscv_next_regs.sail:68))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:70)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_next_regs.sail:70)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_next_regs.sail:70)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:70)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Uinterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:70)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:70)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:71)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_next_regs.sail:71)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_next_regs.sail:71)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("_update_Sinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:71)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_Uinterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("u"),model/riscv_next_regs.sail:71)),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)),E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:71)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:72)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67));(Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_uie"),model/riscv_next_regs.sail:75),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_uie"),model/riscv_next_regs.sail:75),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75),P_aux(P_id(Id_aux(Id("s"),model/riscv_next_regs.sail:75)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75),P_aux(P_id(Id_aux(Id("d"),model/riscv_next_regs.sail:75)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75))),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75),P_aux(P_id(Id_aux(Id("v"),model/riscv_next_regs.sail:75)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_next_regs.sail:75-77)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("lift_uie"),model/riscv_next_regs.sail:76),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_next_regs.sail:76)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75)));(E_aux(E_id(Id_aux(Id("d"),model/riscv_next_regs.sail:76)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75)));(E_aux(E_app(Id_aux(Id("Mk_Uinterrupts"),model/riscv_next_regs.sail:76),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_next_regs.sail:76)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:67)),model/riscv_next_regs.sail:67)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75));(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_next_regs.sail:79))]),model/riscv_next_regs.sail:79),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_next_regs.sail:79))]),model/riscv_next_regs.sail:79),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_next_regs.sail:79)),model/riscv_next_regs.sail:79),Id_aux(Id("utvec"),model/riscv_next_regs.sail:79)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_next_regs.sail:79)),model/riscv_next_regs.sail:79))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_next_regs.sail:80))]),model/riscv_next_regs.sail:80),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_next_regs.sail:80))]),model/riscv_next_regs.sail:80),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_next_regs.sail:80)),model/riscv_next_regs.sail:80),Id_aux(Id("uscratch"),model/riscv_next_regs.sail:80)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_next_regs.sail:81))]),model/riscv_next_regs.sail:81),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_next_regs.sail:81))]),model/riscv_next_regs.sail:81),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_next_regs.sail:81)),model/riscv_next_regs.sail:81),Id_aux(Id("uepc"),model/riscv_next_regs.sail:81)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_next_regs.sail:82))]),model/riscv_next_regs.sail:82),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_next_regs.sail:82))]),model/riscv_next_regs.sail:82),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_next_regs.sail:82)),model/riscv_next_regs.sail:82),Id_aux(Id("ucause"),model/riscv_next_regs.sail:82)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_next_regs.sail:82)),model/riscv_next_regs.sail:82))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_next_regs.sail:83))]),model/riscv_next_regs.sail:83),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_next_regs.sail:83))]),model/riscv_next_regs.sail:83),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_next_regs.sail:83)),model/riscv_next_regs.sail:83),Id_aux(Id("utval"),model/riscv_next_regs.sail:83)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_check_xret_priv"),model/riscv_sys_exceptions.sail:6),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:6)),model/riscv_sys_exceptions.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_exceptions.sail:6)),model/riscv_sys_exceptions.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_exceptions.sail:6)),model/riscv_sys_exceptions.sail:6)),model/riscv_sys_exceptions.sail:6),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_check_xret_priv"),model/riscv_sys_exceptions.sail:6),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:6)),model/riscv_sys_exceptions.sail:6),P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:6)),model/riscv_sys_exceptions.sail:6),P_aux(P_id(Id_aux(Id("p"),model/riscv_sys_exceptions.sail:6)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:6)),model/riscv_sys_exceptions.sail:6))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:6)),model/riscv_sys_exceptions.sail:6))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:6)),model/riscv_sys_exceptions.sail:6)),E_aux(E_lit(L_aux(L_true,model/riscv_sys_exceptions.sail:6)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:6)),model/riscv_sys_exceptions.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_exceptions.sail:6)),model/riscv_sys_exceptions.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_fail_xret_priv"),model/riscv_sys_exceptions.sail:8),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:8)),model/riscv_sys_exceptions.sail:8))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:8)),model/riscv_sys_exceptions.sail:8),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:8)),model/riscv_sys_exceptions.sail:8)),model/riscv_sys_exceptions.sail:8),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_fail_xret_priv"),model/riscv_sys_exceptions.sail:8),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:8)),model/riscv_sys_exceptions.sail:8),P_aux(P_lit(L_aux(L_unit,model/riscv_sys_exceptions.sail:8)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:8)),model/riscv_sys_exceptions.sail:8)),E_aux(E_lit(L_aux(L_unit,model/riscv_sys_exceptions.sail:8)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:8)),model/riscv_sys_exceptions.sail:8))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:8)),model/riscv_sys_exceptions.sail:8),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("handle_trap_extension"),model/riscv_sys_exceptions.sail:10),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_exceptions.sail:10),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10))]),model/riscv_sys_exceptions.sail:10))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("handle_trap_extension"),model/riscv_sys_exceptions.sail:10),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10),P_aux(P_id(Id_aux(Id("p"),model/riscv_sys_exceptions.sail:10)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10),P_aux(P_id(Id_aux(Id("pc"),model/riscv_sys_exceptions.sail:10)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_exceptions.sail:10),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10))]),model/riscv_sys_exceptions.sail:10),P_aux(P_id(Id_aux(Id("u"),model/riscv_sys_exceptions.sail:10)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_exceptions.sail:10),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10))]),model/riscv_sys_exceptions.sail:10))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_exceptions.sail:10),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10))]),model/riscv_sys_exceptions.sail:10)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_exceptions.sail:10),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10))]),model/riscv_sys_exceptions.sail:10))]),model/riscv_sys_exceptions.sail:10)),E_aux(E_lit(L_aux(L_unit,model/riscv_sys_exceptions.sail:10)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_exceptions.sail:10),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10))]),model/riscv_sys_exceptions.sail:10))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("prepare_trap_vector"),model/riscv_sys_exceptions.sail:13),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13));(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_types.sail:248));(BE_aux(BE_rreg,model/riscv_sys_regs.sail:310))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("prepare_trap_vector"),model/riscv_sys_exceptions.sail:13),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13),P_aux(P_id(Id_aux(Id("p"),model/riscv_sys_exceptions.sail:13)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13),P_aux(P_id(Id_aux(Id("cause"),model/riscv_sys_exceptions.sail:13)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13))),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13));(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13))]),model/riscv_sys_exceptions.sail:13-23)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_exceptions.sail:14)),model/riscv_sys_exceptions.sail:14),P_aux(P_id(Id_aux(Id("tvec"),model/riscv_sys_exceptions.sail:14)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_exceptions.sail:14)),model/riscv_sys_exceptions.sail:14))),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_exceptions.sail:14)),model/riscv_sys_exceptions.sail:14)),E_aux(E_case(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_exceptions.sail:14)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_sys_exceptions.sail:15)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13)),E_aux(E_id(Id_aux(Id("mtvec"),model/riscv_sys_exceptions.sail:15)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:310)),model/riscv_sys_regs.sail:310))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_sys_exceptions.sail:16)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13)),E_aux(E_id(Id_aux(Id("stvec"),model/riscv_sys_exceptions.sail:16)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:578)),model/riscv_sys_regs.sail:578))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("User"),model/riscv_sys_exceptions.sail:17)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13)),E_aux(E_id(Id_aux(Id("utvec"),model/riscv_sys_exceptions.sail:17)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_next_regs.sail:79)),model/riscv_next_regs.sail:79))),None))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_exceptions.sail:14)),model/riscv_sys_exceptions.sail:14))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("tvec_addr"),model/riscv_sys_exceptions.sail:19),[(E_aux(E_id(Id_aux(Id("tvec"),model/riscv_sys_exceptions.sail:19)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_exceptions.sail:14)),model/riscv_sys_exceptions.sail:14)));(E_aux(E_id(Id_aux(Id("cause"),model/riscv_sys_exceptions.sail:19)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_regs.sail:328),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_regs.sail:328))]),model/riscv_sys_regs.sail:328)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_sys_exceptions.sail:20),[(P_aux(P_id(Id_aux(Id("epc"),model/riscv_sys_exceptions.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_regs.sail:328),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_regs.sail:328))]),model/riscv_sys_regs.sail:328)),E_aux(E_id(Id_aux(Id("epc"),model/riscv_sys_exceptions.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_sys_exceptions.sail:21),[(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_exceptions.sail:21)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_regs.sail:328),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_regs.sail:328))]),model/riscv_sys_regs.sail:328)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_sys_exceptions.sail:21),[(E_aux(E_lit(L_aux(L_string("Invalid tvec mode"),model/riscv_sys_exceptions.sail:21)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13));(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_exceptions.sail:13)),model/riscv_sys_exceptions.sail:13))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("get_xret_target"),model/riscv_sys_exceptions.sail:32),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:32)),model/riscv_sys_exceptions.sail:32))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_exceptions.sail:32))]),model/riscv_sys_exceptions.sail:32)),model/riscv_sys_exceptions.sail:32)),model/riscv_sys_exceptions.sail:32))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("get_xret_target"),model/riscv_sys_exceptions.sail:33),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("p"),model/riscv_sys_exceptions.sail:33)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:32)),model/riscv_sys_exceptions.sail:32)),E_aux(E_case(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_exceptions.sail:34)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:32)),model/riscv_sys_exceptions.sail:32)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_sys_exceptions.sail:35)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:32)),model/riscv_sys_exceptions.sail:32)),E_aux(E_id(Id_aux(Id("mepc"),model/riscv_sys_exceptions.sail:35)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_sys_exceptions.sail:36)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:32)),model/riscv_sys_exceptions.sail:32)),E_aux(E_id(Id_aux(Id("sepc"),model/riscv_sys_exceptions.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("User"),model/riscv_sys_exceptions.sail:37)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:32)),model/riscv_sys_exceptions.sail:32)),E_aux(E_id(Id_aux(Id("uepc"),model/riscv_sys_exceptions.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:32)),model/riscv_sys_exceptions.sail:32))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_exceptions.sail:32))]),model/riscv_sys_exceptions.sail:32)),model/riscv_sys_exceptions.sail:32)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("set_xret_target"),model/riscv_sys_exceptions.sail:40),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:40)),model/riscv_sys_exceptions.sail:40));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_exceptions.sail:40));(BE_aux(BE_wreg,model/riscv_sys_exceptions.sail:40))]),model/riscv_sys_exceptions.sail:40)),model/riscv_sys_exceptions.sail:40)),model/riscv_sys_exceptions.sail:40))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("set_xret_target"),model/riscv_sys_exceptions.sail:41),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("p"),model/riscv_sys_exceptions.sail:41)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:40)),model/riscv_sys_exceptions.sail:40)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_sys_exceptions.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:40)),model/riscv_sys_exceptions.sail:40));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_exceptions.sail:41-49)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("target"),model/riscv_sys_exceptions.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("legalize_xepc"),model/riscv_sys_exceptions.sail:42),[(E_aux(E_id(Id_aux(Id("value"),model/riscv_sys_exceptions.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_exceptions.sail:43)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:40)),model/riscv_sys_exceptions.sail:40)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_sys_exceptions.sail:44)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:40)),model/riscv_sys_exceptions.sail:40)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mepc"),model/riscv_sys_exceptions.sail:44)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("target"),model/riscv_sys_exceptions.sail:44)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_sys_exceptions.sail:45)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:40)),model/riscv_sys_exceptions.sail:40)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("sepc"),model/riscv_sys_exceptions.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("target"),model/riscv_sys_exceptions.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("User"),model/riscv_sys_exceptions.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:40)),model/riscv_sys_exceptions.sail:40)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("uepc"),model/riscv_sys_exceptions.sail:46)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("target"),model/riscv_sys_exceptions.sail:46)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_id(Id_aux(Id("target"),model/riscv_sys_exceptions.sail:48)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:40)),model/riscv_sys_exceptions.sail:40));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_exceptions.sail:40));(BE_aux(BE_wreg,model/riscv_sys_exceptions.sail:40))]),model/riscv_sys_exceptions.sail:40)),model/riscv_sys_exceptions.sail:40)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("prepare_xret_target"),model/riscv_sys_exceptions.sail:51),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:51)),model/riscv_sys_exceptions.sail:51))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_exceptions.sail:51));(BE_aux(BE_wreg,model/riscv_sys_exceptions.sail:51))]),model/riscv_sys_exceptions.sail:51)),model/riscv_sys_exceptions.sail:51)),model/riscv_sys_exceptions.sail:51))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("prepare_xret_target"),model/riscv_sys_exceptions.sail:52),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("p"),model/riscv_sys_exceptions.sail:52)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:51)),model/riscv_sys_exceptions.sail:51)),E_aux(E_app(Id_aux(Id("get_xret_target"),model/riscv_sys_exceptions.sail:53),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_exceptions.sail:53)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:51)),model/riscv_sys_exceptions.sail:51)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_exceptions.sail:51)),model/riscv_sys_exceptions.sail:51))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_exceptions.sail:51));(BE_aux(BE_wreg,model/riscv_sys_exceptions.sail:51))]),model/riscv_sys_exceptions.sail:51)),model/riscv_sys_exceptions.sail:51)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("get_mtvec"),model/riscv_sys_exceptions.sail:57),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:57)),model/riscv_sys_exceptions.sail:57),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:310))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:57)),model/riscv_sys_exceptions.sail:57)),model/riscv_sys_exceptions.sail:57),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("get_mtvec"),model/riscv_sys_exceptions.sail:57),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_exceptions.sail:57)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("_get_Mtvec_bits"),:1),[(E_aux(E_id(Id_aux(Id("mtvec"),model/riscv_sys_exceptions.sail:58)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:310)),model/riscv_sys_regs.sail:310)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("get_stvec"),model/riscv_sys_exceptions.sail:60),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:60)),model/riscv_sys_exceptions.sail:60),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:578))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:60)),model/riscv_sys_exceptions.sail:60)),model/riscv_sys_exceptions.sail:60),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("get_stvec"),model/riscv_sys_exceptions.sail:60),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_exceptions.sail:60)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("_get_Mtvec_bits"),:1),[(E_aux(E_id(Id_aux(Id("stvec"),model/riscv_sys_exceptions.sail:61)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:578)),model/riscv_sys_regs.sail:578)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("get_utvec"),model/riscv_sys_exceptions.sail:63),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:63)),model/riscv_sys_exceptions.sail:63),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_next_regs.sail:79))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:63)),model/riscv_sys_exceptions.sail:63)),model/riscv_sys_exceptions.sail:63),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("get_utvec"),model/riscv_sys_exceptions.sail:63),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_exceptions.sail:63)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("_get_Mtvec_bits"),:1),[(E_aux(E_id(Id_aux(Id("utvec"),model/riscv_sys_exceptions.sail:64)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_next_regs.sail:79)),model/riscv_next_regs.sail:79)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("set_mtvec"),model/riscv_sys_exceptions.sail:66),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:66)),model/riscv_sys_exceptions.sail:66))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:66)),model/riscv_sys_exceptions.sail:66),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:310));(BE_aux(BE_wreg,model/riscv_sys_regs.sail:310))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:66)),model/riscv_sys_exceptions.sail:66)),model/riscv_sys_exceptions.sail:66),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("set_mtvec"),model/riscv_sys_exceptions.sail:66),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:66)),model/riscv_sys_exceptions.sail:66),P_aux(P_id(Id_aux(Id("value"),model/riscv_sys_exceptions.sail:66)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mtvec"),model/riscv_sys_exceptions.sail:67)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312)),E_aux(E_app(Id_aux(Id("legalize_tvec"),model/riscv_sys_exceptions.sail:67),[(E_aux(E_id(Id_aux(Id("mtvec"),model/riscv_sys_exceptions.sail:67)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:310)),model/riscv_sys_regs.sail:310)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_sys_exceptions.sail:67)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Mtvec_bits"),:1),[(E_aux(E_id(Id_aux(Id("mtvec"),model/riscv_sys_exceptions.sail:68)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:310)),model/riscv_sys_regs.sail:310)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("set_stvec"),model/riscv_sys_exceptions.sail:71),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:71)),model/riscv_sys_exceptions.sail:71))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:71)),model/riscv_sys_exceptions.sail:71),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:578));(BE_aux(BE_wreg,model/riscv_sys_regs.sail:578))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:71)),model/riscv_sys_exceptions.sail:71)),model/riscv_sys_exceptions.sail:71),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("set_stvec"),model/riscv_sys_exceptions.sail:71),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:71)),model/riscv_sys_exceptions.sail:71),P_aux(P_id(Id_aux(Id("value"),model/riscv_sys_exceptions.sail:71)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("stvec"),model/riscv_sys_exceptions.sail:72)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312)),E_aux(E_app(Id_aux(Id("legalize_tvec"),model/riscv_sys_exceptions.sail:72),[(E_aux(E_id(Id_aux(Id("stvec"),model/riscv_sys_exceptions.sail:72)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:578)),model/riscv_sys_regs.sail:578)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_sys_exceptions.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Mtvec_bits"),:1),[(E_aux(E_id(Id_aux(Id("stvec"),model/riscv_sys_exceptions.sail:73)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:578)),model/riscv_sys_regs.sail:578)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("set_utvec"),model/riscv_sys_exceptions.sail:76),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:76)),model/riscv_sys_exceptions.sail:76))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:76)),model/riscv_sys_exceptions.sail:76),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_next_regs.sail:79));(BE_aux(BE_wreg,model/riscv_next_regs.sail:79))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:76)),model/riscv_sys_exceptions.sail:76)),model/riscv_sys_exceptions.sail:76),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("set_utvec"),model/riscv_sys_exceptions.sail:76),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_exceptions.sail:76)),model/riscv_sys_exceptions.sail:76),P_aux(P_id(Id_aux(Id("value"),model/riscv_sys_exceptions.sail:76)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("utvec"),model/riscv_sys_exceptions.sail:77)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312)),E_aux(E_app(Id_aux(Id("legalize_tvec"),model/riscv_sys_exceptions.sail:77),[(E_aux(E_id(Id_aux(Id("utvec"),model/riscv_sys_exceptions.sail:77)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_next_regs.sail:79)),model/riscv_next_regs.sail:79)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_sys_exceptions.sail:77)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:312)),model/riscv_sys_regs.sail:312))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Mtvec_bits"),:1),[(E_aux(E_id(Id_aux(Id("utvec"),model/riscv_sys_exceptions.sail:78)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_next_regs.sail:79)),model/riscv_next_regs.sail:79)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_sync_exception"),model/riscv_sync_exception.sail:3),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),model/riscv_sync_exception.sail:3),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sync_exception.sail:3)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_sync_exception"),model/riscv_sync_exception.sail:3),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("trap"),model/riscv_sync_exception.sail:4),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sync_exception.sail:4)),model/riscv_sync_exception.sail:4))),None));(FE_aux(FE_Fexp(Id_aux(Id("excinfo"),model/riscv_sync_exception.sail:5),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sync_exception.sail:5),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sync_exception.sail:5))]),model/riscv_sync_exception.sail:5))),None));(FE_aux(FE_Fexp(Id_aux(Id("ext"),model/riscv_sync_exception.sail:6),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sync_exception.sail:6),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_exceptions.sail:3)),model/riscv_sync_exception.sail:6))]),model/riscv_sync_exception.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sync_exception.sail:3)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sync_exception.sail:3)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_is_CSR_defined"),model/riscv_next_control.sail:3),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("000"),model/riscv_next_control.sail:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))]),model/riscv_next_control.sail:3)),E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_next_control.sail:3),[(E_aux(E_lit(L_aux(L_unit,model/riscv_next_control.sail:3)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:110))]),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_is_CSR_defined"),model/riscv_next_control.sail:4),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("004"),model/riscv_next_control.sail:4)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))]),model/riscv_next_control.sail:4)),E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_next_control.sail:4),[(E_aux(E_lit(L_aux(L_unit,model/riscv_next_control.sail:4)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:110))]),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_is_CSR_defined"),model/riscv_next_control.sail:5),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("005"),model/riscv_next_control.sail:5)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))]),model/riscv_next_control.sail:5)),E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_next_control.sail:5),[(E_aux(E_lit(L_aux(L_unit,model/riscv_next_control.sail:5)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:110))]),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_is_CSR_defined"),model/riscv_next_control.sail:6),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("040"),model/riscv_next_control.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))]),model/riscv_next_control.sail:6)),E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_next_control.sail:6),[(E_aux(E_lit(L_aux(L_unit,model/riscv_next_control.sail:6)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:110))]),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_is_CSR_defined"),model/riscv_next_control.sail:7),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("041"),model/riscv_next_control.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))]),model/riscv_next_control.sail:7)),E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_next_control.sail:7),[(E_aux(E_lit(L_aux(L_unit,model/riscv_next_control.sail:7)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:110))]),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_is_CSR_defined"),model/riscv_next_control.sail:8),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("042"),model/riscv_next_control.sail:8)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))]),model/riscv_next_control.sail:8)),E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_next_control.sail:8),[(E_aux(E_lit(L_aux(L_unit,model/riscv_next_control.sail:8)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:110))]),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_is_CSR_defined"),model/riscv_next_control.sail:9),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("043"),model/riscv_next_control.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))]),model/riscv_next_control.sail:9)),E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_next_control.sail:9),[(E_aux(E_lit(L_aux(L_unit,model/riscv_next_control.sail:9)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:110))]),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_is_CSR_defined"),model/riscv_next_control.sail:10),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("044"),model/riscv_next_control.sail:10)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))]),model/riscv_next_control.sail:10)),E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_next_control.sail:10),[(E_aux(E_lit(L_aux(L_unit,model/riscv_next_control.sail:10)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:110))]),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_read_CSR"),model/riscv_next_control.sail:12),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("000"),model/riscv_next_control.sail:12)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:12),[(E_aux(E_app(Id_aux(Id("_get_Ustatus_bits"),:1),[(E_aux(E_app(Id_aux(Id("lower_sstatus"),model/riscv_next_control.sail:12),[(E_aux(E_app(Id_aux(Id("lower_mstatus"),model/riscv_next_control.sail:12),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_next_control.sail:12)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_id(Id_aux(Id("Ustatus"),model/riscv_next_regs.sail:10)),model/riscv_next_regs.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:114),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114)),model/riscv_csr_map.sail:114))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_read_CSR"),model/riscv_next_control.sail:13),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("004"),model/riscv_next_control.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:13),[(E_aux(E_app(Id_aux(Id("_get_Uinterrupts_bits"),:1),[(E_aux(E_app(Id_aux(Id("lower_sie"),model/riscv_next_control.sail:13),[(E_aux(E_app(Id_aux(Id("lower_mie"),model/riscv_next_control.sail:13),[(E_aux(E_id(Id_aux(Id("mie"),model/riscv_next_control.sail:13)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)));(E_aux(E_id(Id_aux(Id("mideleg"),model/riscv_next_control.sail:13)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)));(E_aux(E_id(Id_aux(Id("sideleg"),model/riscv_next_control.sail:13)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:575)),model/riscv_sys_regs.sail:575)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:47)),model/riscv_next_regs.sail:47)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:114),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114)),model/riscv_csr_map.sail:114))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_read_CSR"),model/riscv_next_control.sail:14),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("005"),model/riscv_next_control.sail:14)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:14),[(E_aux(E_app(Id_aux(Id("get_utvec"),model/riscv_next_control.sail:14),[(E_aux(E_lit(L_aux(L_unit,model/riscv_next_control.sail:14)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:114),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114)),model/riscv_csr_map.sail:114))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_read_CSR"),model/riscv_next_control.sail:15),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("040"),model/riscv_next_control.sail:15)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:15),[(E_aux(E_id(Id_aux(Id("uscratch"),model/riscv_next_control.sail:15)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:114),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114)),model/riscv_csr_map.sail:114))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_read_CSR"),model/riscv_next_control.sail:16),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("041"),model/riscv_next_control.sail:16)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:16),[(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("get_xret_target"),model/riscv_next_control.sail:16),[(E_aux(E_id(Id_aux(Id("User"),model/riscv_next_control.sail:16)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("pc_alignment_mask"),model/riscv_next_control.sail:16),[(E_aux(E_lit(L_aux(L_unit,model/riscv_next_control.sail:16)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:114),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114)),model/riscv_csr_map.sail:114))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_read_CSR"),model/riscv_next_control.sail:17),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("042"),model/riscv_next_control.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:17),[(E_aux(E_app(Id_aux(Id("_get_Mcause_bits"),:1),[(E_aux(E_id(Id_aux(Id("ucause"),model/riscv_next_control.sail:17)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_next_regs.sail:82)),model/riscv_next_regs.sail:82)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:114),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114)),model/riscv_csr_map.sail:114))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_read_CSR"),model/riscv_next_control.sail:18),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("043"),model/riscv_next_control.sail:18)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:18),[(E_aux(E_id(Id_aux(Id("utval"),model/riscv_next_control.sail:18)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:114),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114)),model/riscv_csr_map.sail:114))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_read_CSR"),model/riscv_next_control.sail:19),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("044"),model/riscv_next_control.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:19),[(E_aux(E_app(Id_aux(Id("_get_Uinterrupts_bits"),:1),[(E_aux(E_app(Id_aux(Id("lower_sip"),model/riscv_next_control.sail:19),[(E_aux(E_app(Id_aux(Id("lower_mip"),model/riscv_next_control.sail:19),[(E_aux(E_id(Id_aux(Id("mip"),model/riscv_next_control.sail:19)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)));(E_aux(E_id(Id_aux(Id("mideleg"),model/riscv_next_control.sail:19)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)));(E_aux(E_id(Id_aux(Id("sideleg"),model/riscv_next_control.sail:19)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:575)),model/riscv_sys_regs.sail:575)))]),Typ_aux(Typ_id(Id_aux(Id("Uinterrupts"),model/riscv_next_regs.sail:38)),model/riscv_next_regs.sail:38)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:114),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114)),model/riscv_csr_map.sail:114))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_write_CSR"),model/riscv_next_control.sail:21),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("000"),model/riscv_next_control.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_next_control.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_next_control.sail:21)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mstatus"),model/riscv_next_control.sail:21)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23)),E_aux(E_app(Id_aux(Id("legalize_ustatus"),model/riscv_next_control.sail:21),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_next_control.sail:21)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_next_control.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_next_regs.sail:23)),model/riscv_next_regs.sail:23))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:21),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_next_control.sail:21)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:118));(BE_aux(BE_wreg,model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118)),model/riscv_csr_map.sail:118))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_write_CSR"),model/riscv_next_control.sail:22),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("004"),model/riscv_next_control.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_next_control.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_next_control.sail:22-24)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("sie"),model/riscv_next_control.sail:22)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75)),E_aux(E_app(Id_aux(Id("legalize_uie"),model/riscv_next_control.sail:22),[(E_aux(E_app(Id_aux(Id("lower_mie"),model/riscv_next_control.sail:22),[(E_aux(E_id(Id_aux(Id("mie"),model/riscv_next_control.sail:22)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)));(E_aux(E_id(Id_aux(Id("mideleg"),model/riscv_next_control.sail:22)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)));(E_aux(E_id(Id_aux(Id("sideleg"),model/riscv_next_control.sail:22)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:575)),model/riscv_sys_regs.sail:575)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_next_control.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75))),None),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mie"),model/riscv_next_control.sail:23)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558)),E_aux(E_app(Id_aux(Id("lift_sie"),model/riscv_next_control.sail:23),[(E_aux(E_id(Id_aux(Id("mie"),model/riscv_next_control.sail:23)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)));(E_aux(E_id(Id_aux(Id("mideleg"),model/riscv_next_control.sail:23)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)));(E_aux(E_id(Id_aux(Id("sie"),model/riscv_next_control.sail:23)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:75)),model/riscv_next_regs.sail:75)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:558)),model/riscv_sys_regs.sail:558))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:24),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("mie"),model/riscv_next_control.sail:24)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:118));(BE_aux(BE_wreg,model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118)),model/riscv_csr_map.sail:118))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_write_CSR"),model/riscv_next_control.sail:25),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("005"),model/riscv_next_control.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_next_control.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_next_control.sail:25)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:25),[(E_aux(E_app(Id_aux(Id("set_utvec"),model/riscv_next_control.sail:25),[(E_aux(E_id(Id_aux(Id("value"),model/riscv_next_control.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:118));(BE_aux(BE_wreg,model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118)),model/riscv_csr_map.sail:118))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_write_CSR"),model/riscv_next_control.sail:26),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("040"),model/riscv_next_control.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_next_control.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_next_control.sail:26)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("uscratch"),model/riscv_next_control.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("value"),model/riscv_next_control.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:26),[(E_aux(E_id(Id_aux(Id("uscratch"),model/riscv_next_control.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:118));(BE_aux(BE_wreg,model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118)),model/riscv_csr_map.sail:118))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_write_CSR"),model/riscv_next_control.sail:27),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("041"),model/riscv_next_control.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_next_control.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_next_control.sail:27)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:27),[(E_aux(E_app(Id_aux(Id("set_xret_target"),model/riscv_next_control.sail:27),[(E_aux(E_id(Id_aux(Id("User"),model/riscv_next_control.sail:27)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_next_control.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:118));(BE_aux(BE_wreg,model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118)),model/riscv_csr_map.sail:118))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_write_CSR"),model/riscv_next_control.sail:28),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("042"),model/riscv_next_control.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_next_control.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_next_control.sail:28)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("_set_Mcause_bits"),:1),[(E_aux(E_ref(Id_aux(Id("ucause"),model/riscv_next_control.sail:28)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_next_regs.sail:82)),model/riscv_next_regs.sail:82)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_next_control.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:28),[(E_aux(E_app(Id_aux(Id("_get_Mcause_bits"),:1),[(E_aux(E_id(Id_aux(Id("ucause"),model/riscv_next_control.sail:28)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_next_regs.sail:82)),model/riscv_next_regs.sail:82)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:118));(BE_aux(BE_wreg,model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118)),model/riscv_csr_map.sail:118))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_write_CSR"),model/riscv_next_control.sail:29),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("043"),model/riscv_next_control.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_next_control.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_next_control.sail:29)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("utval"),model/riscv_next_control.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("value"),model/riscv_next_control.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:29),[(E_aux(E_id(Id_aux(Id("utval"),model/riscv_next_control.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:118));(BE_aux(BE_wreg,model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118)),model/riscv_csr_map.sail:118))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_write_CSR"),model/riscv_next_control.sail:30),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("044"),model/riscv_next_control.sail:30)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_next_control.sail:30)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_next_control.sail:30-32)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("sip"),model/riscv_next_control.sail:30)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62)),E_aux(E_app(Id_aux(Id("legalize_uip"),model/riscv_next_control.sail:30),[(E_aux(E_app(Id_aux(Id("lower_mip"),model/riscv_next_control.sail:30),[(E_aux(E_id(Id_aux(Id("mip"),model/riscv_next_control.sail:30)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)));(E_aux(E_id(Id_aux(Id("mideleg"),model/riscv_next_control.sail:30)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)));(E_aux(E_id(Id_aux(Id("sideleg"),model/riscv_next_control.sail:30)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:575)),model/riscv_sys_regs.sail:575)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_next_control.sail:30)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62))),None),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mip"),model/riscv_next_control.sail:31)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543)),E_aux(E_app(Id_aux(Id("lift_sip"),model/riscv_next_control.sail:31),[(E_aux(E_id(Id_aux(Id("mip"),model/riscv_next_control.sail:31)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)));(E_aux(E_id(Id_aux(Id("mideleg"),model/riscv_next_control.sail:31)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)));(E_aux(E_id(Id_aux(Id("sip"),model/riscv_next_control.sail:31)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_next_regs.sail:62)),model/riscv_next_regs.sail:62)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:543)),model/riscv_sys_regs.sail:543))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_next_control.sail:32),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("mip"),model/riscv_next_control.sail:32)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:118));(BE_aux(BE_wreg,model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118)),model/riscv_csr_map.sail:118))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_is_CSR_defined"),model/riscv_csr_ext.sail:6),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))]),model/riscv_csr_ext.sail:6)),E_aux(E_lit(L_aux(L_false,model/riscv_csr_ext.sail:6)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:110))]),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_read_CSR"),model/riscv_csr_ext.sail:9),Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("None"),model/riscv_csr_ext.sail:9),[(E_aux(E_lit(L_aux(L_unit,model/riscv_csr_ext.sail:9)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:114),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114)),model/riscv_csr_map.sail:114))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("ext_write_CSR"),model/riscv_csr_ext.sail:12),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_csr_ext.sail:12)),E_aux(E_app(Id_aux(Id("None"),model/riscv_csr_ext.sail:12),[(E_aux(E_lit(L_aux(L_unit,model/riscv_csr_ext.sail:12)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_csr_map.sail:118));(BE_aux(BE_wreg,model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118)),model/riscv_csr_map.sail:118))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("csrAccess"),model/riscv_sys_control.sail:6),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_sys_control.sail:6)),model/riscv_sys_control.sail:6))],Typ_aux(Typ_id(Id_aux(Id("csrRW"),model/riscv_sys_control.sail:6)),model/riscv_sys_control.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("csrRW"),model/riscv_sys_control.sail:6)),model/riscv_sys_control.sail:6)),model/riscv_sys_control.sail:6),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("csrAccess"),model/riscv_sys_control.sail:6),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_sys_control.sail:6)),model/riscv_sys_control.sail:6),P_aux(P_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(11),model/riscv_sys_control.sail:6)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),model/riscv_sys_control.sail:6)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(10),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:306)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("csrPriv"),model/riscv_sys_control.sail:7),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_sys_control.sail:7)),model/riscv_sys_control.sail:7))],Typ_aux(Typ_id(Id_aux(Id("priv_level"),model/riscv_sys_control.sail:7)),model/riscv_sys_control.sail:7),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("priv_level"),model/riscv_sys_control.sail:7)),model/riscv_sys_control.sail:7)),model/riscv_sys_control.sail:7),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("csrPriv"),model/riscv_sys_control.sail:7),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_sys_control.sail:7)),model/riscv_sys_control.sail:7),P_aux(P_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(9),model/riscv_sys_control.sail:7)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_sys_control.sail:7)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(9),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("is_CSR_defined"),model/riscv_sys_control.sail:9),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("is_CSR_defined"),model/riscv_sys_control.sail:9),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9),P_aux(P_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9),P_aux(P_id(Id_aux(Id("p"),model/riscv_sys_control.sail:9)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9))]),model/riscv_sys_control.sail:9-92)),E_aux(E_case(E_aux(E_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:10)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("f11"),model/riscv_sys_control.sail:12)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:12)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:12)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("f12"),model/riscv_sys_control.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:13)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:13)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("f13"),model/riscv_sys_control.sail:14)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:14)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:14)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("f14"),model/riscv_sys_control.sail:15)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:15)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:15)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("300"),model/riscv_sys_control.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:17)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:17)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("301"),model/riscv_sys_control.sail:18)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:18)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:18)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("302"),model/riscv_sys_control.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:19)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:19)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("303"),model/riscv_sys_control.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:20)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:20)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("304"),model/riscv_sys_control.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:21)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:21)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("305"),model/riscv_sys_control.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:22)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:22)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("306"),model/riscv_sys_control.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:23)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:23)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("340"),model/riscv_sys_control.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:25)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:25)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("341"),model/riscv_sys_control.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:26)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:26)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("342"),model/riscv_sys_control.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:27)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:27)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("343"),model/riscv_sys_control.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:28)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:28)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("344"),model/riscv_sys_control.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:29)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:29)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3A0"),model/riscv_sys_control.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:31)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:31)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3A1"),model/riscv_sys_control.sail:32)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:32)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:32)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_sys_control.sail:32)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3229#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3229#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3A2"),model/riscv_sys_control.sail:33)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:33)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:33)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3A3"),model/riscv_sys_control.sail:34)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:34)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:34)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_sys_control.sail:34)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3234#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3234#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3B0"),model/riscv_sys_control.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:36)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:36)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3B1"),model/riscv_sys_control.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:37)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:37)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3B2"),model/riscv_sys_control.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:38)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:38)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3B3"),model/riscv_sys_control.sail:39)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:39)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:39)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3B4"),model/riscv_sys_control.sail:40)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:40)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:40)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3B5"),model/riscv_sys_control.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:41)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:41)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3B6"),model/riscv_sys_control.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:42)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:42)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3B7"),model/riscv_sys_control.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:43)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:43)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3B8"),model/riscv_sys_control.sail:44)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:44)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:44)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3B9"),model/riscv_sys_control.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:45)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:45)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3BA"),model/riscv_sys_control.sail:46)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3BB"),model/riscv_sys_control.sail:47)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:47)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:47)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3BC"),model/riscv_sys_control.sail:48)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:48)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:48)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3BD"),model/riscv_sys_control.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:49)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:49)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3BE"),model/riscv_sys_control.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:50)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:50)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("3BF"),model/riscv_sys_control.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:51)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:51)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("B00"),model/riscv_sys_control.sail:54)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:54)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:54)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("B02"),model/riscv_sys_control.sail:55)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:55)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:55)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("B80"),model/riscv_sys_control.sail:57)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:57)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:57)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_sys_control.sail:57)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3239#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3239#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("B82"),model/riscv_sys_control.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:58)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:58)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_sys_control.sail:58)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3244#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3244#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("7a0"),model/riscv_sys_control.sail:61)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:61)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:61)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("100"),model/riscv_sys_control.sail:64)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:64),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:64)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:64)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:64)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:64)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:64)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3257#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3258#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3257#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3258#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3263#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3261#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3262#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3263#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3261#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3262#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("102"),model/riscv_sys_control.sail:65)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:65),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:65)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:65)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:65)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:65)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:65)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3280#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3281#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3280#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3281#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3286#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3284#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3285#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3286#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3284#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3285#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("103"),model/riscv_sys_control.sail:66)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:66),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:66)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:66)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:66)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:66)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:66)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3303#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3304#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3303#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3304#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3309#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3307#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3308#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3309#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3307#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3308#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("104"),model/riscv_sys_control.sail:67)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:67),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:67)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:67)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:67)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:67)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:67)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3326#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3327#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3326#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3327#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3332#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3330#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3331#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3332#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3330#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3331#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("105"),model/riscv_sys_control.sail:68)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:68),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:68)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:68)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:68)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:68)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:68)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3349#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3350#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3349#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3350#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3355#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3353#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3354#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3355#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3353#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3354#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("106"),model/riscv_sys_control.sail:69)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:69),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:69)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:69)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:69)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:69)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:69)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3372#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3373#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3372#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3373#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3378#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3376#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3377#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3378#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3376#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3377#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("140"),model/riscv_sys_control.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:72),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:72)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:72)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:72)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:72)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:72)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3395#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3396#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3395#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3396#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3401#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3399#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3400#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3401#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3399#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3400#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("141"),model/riscv_sys_control.sail:73)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:73),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:73)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:73)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:73)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:73)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:73)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3418#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3419#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3418#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3419#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3424#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3422#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3423#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3424#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3422#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3423#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("142"),model/riscv_sys_control.sail:74)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:74),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:74)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:74)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:74)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:74)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:74)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3441#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3442#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3441#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3442#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3447#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3445#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3446#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3447#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3445#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3446#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("143"),model/riscv_sys_control.sail:75)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:75),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:75)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:75)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:75)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:75)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:75)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3464#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3465#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3464#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3465#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3470#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3468#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3469#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3470#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3468#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3469#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("144"),model/riscv_sys_control.sail:76)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:76),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:76)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:76)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:76)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:76)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:76)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3487#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3488#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3487#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3488#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3493#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3491#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3492#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3493#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3491#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3492#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("180"),model/riscv_sys_control.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:79),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:79)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:79)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:79)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:79)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:79)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3510#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3511#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3510#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3511#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3516#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3514#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3515#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3516#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3514#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3515#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("C00"),model/riscv_sys_control.sail:82)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:82)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("User"),model/riscv_sys_control.sail:82)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("C01"),model/riscv_sys_control.sail:83)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:83)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("User"),model/riscv_sys_control.sail:83)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("C02"),model/riscv_sys_control.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:84)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("User"),model/riscv_sys_control.sail:84)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("C80"),model/riscv_sys_control.sail:86)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:86)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("User"),model/riscv_sys_control.sail:86)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_sys_control.sail:86)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3525#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3525#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("C81"),model/riscv_sys_control.sail:87)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:87)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("User"),model/riscv_sys_control.sail:87)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_sys_control.sail:87)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3530#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3530#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("C82"),model/riscv_sys_control.sail:88)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:88)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_id(Id_aux(Id("User"),model/riscv_sys_control.sail:88)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_sys_control.sail:88)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3535#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3535#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("ext_is_CSR_defined"),model/riscv_sys_control.sail:91),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:91)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:91)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_csr_map.sail:110)),model/riscv_csr_map.sail:110))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("check_CSR_access"),model/riscv_sys_control.sail:94),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:306)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:94)),model/riscv_sys_control.sail:94));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:94)),model/riscv_sys_control.sail:94))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:94)),model/riscv_sys_control.sail:94),Effect_aux(Effect_set([]),model/riscv_sys_control.sail:94)),model/riscv_sys_control.sail:94)),model/riscv_sys_control.sail:94))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("check_CSR_access"),model/riscv_sys_control.sail:95),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("csrrw"),model/riscv_sys_control.sail:95)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:306)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("csrpr"),model/riscv_sys_control.sail:95)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("p"),model/riscv_sys_control.sail:95)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:94)),model/riscv_sys_control.sail:94)));(P_aux(P_id(Id_aux(Id("isWrite"),model/riscv_sys_control.sail:95)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3547#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:306)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:94)),model/riscv_sys_control.sail:94));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3547#"),Unknown)),Unknown)),Unknown))]),Unknown))]),model/riscv_sys_control.sail:95-97)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bool"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("isWrite"),model/riscv_sys_control.sail:96)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3547#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_true,model/riscv_sys_control.sail:96)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:30)),../sail/lib/flow.sail:30)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("csrrw"),model/riscv_sys_control.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:306)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("11"),model/riscv_sys_control.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3552#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3552#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Operator(">=_u"),model/riscv_sys_control.sail:97),[(E_aux(E_app(Id_aux(Id("privLevel_to_bits"),model/riscv_sys_control.sail:97),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:97)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:94)),model/riscv_sys_control.sail:94)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("csrpr"),model/riscv_sys_control.sail:97)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:150)),model/prelude.sail:150)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3556#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3554#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3556#"),Unknown)),Unknown),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3554#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:306)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:94)),model/riscv_sys_control.sail:94));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3547#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:94)),model/riscv_sys_control.sail:94),Effect_aux(Effect_set([]),model/riscv_sys_control.sail:94)),model/riscv_sys_control.sail:94)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("check_TVM_SATP"),model/riscv_sys_control.sail:99),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_sys_control.sail:99)),model/riscv_sys_control.sail:99));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:99)),model/riscv_sys_control.sail:99))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:99)),model/riscv_sys_control.sail:99),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:134))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:99)),model/riscv_sys_control.sail:99)),model/riscv_sys_control.sail:99),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("check_TVM_SATP"),model/riscv_sys_control.sail:99),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_sys_control.sail:99)),model/riscv_sys_control.sail:99),P_aux(P_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:99)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:99)),model/riscv_sys_control.sail:99),P_aux(P_id(Id_aux(Id("p"),model/riscv_sys_control.sail:99)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:99)),model/riscv_sys_control.sail:99))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:99)),model/riscv_sys_control.sail:99)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:99)),model/riscv_sys_control.sail:99))]),model/riscv_sys_control.sail:99-100)),E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:100)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_hex("180"),model/riscv_sys_control.sail:100)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:100)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:99)),model/riscv_sys_control.sail:99)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:100)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_TVM"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:100)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:100)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3586#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3586#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:99)),model/riscv_sys_control.sail:99))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:99)),model/riscv_sys_control.sail:99),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("check_Counteren"),model/riscv_sys_control.sail:102),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:371))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("check_Counteren"),model/riscv_sys_control.sail:102),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102),P_aux(P_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:102)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102),P_aux(P_id(Id_aux(Id("p"),model/riscv_sys_control.sail:102)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102))]),model/riscv_sys_control.sail:102-116)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:103)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:103)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("C00"),model/riscv_sys_control.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:104)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Counteren_CY"),:1),[(E_aux(E_id(Id_aux(Id("mcounteren"),model/riscv_sys_control.sail:104)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:371)),model/riscv_sys_regs.sail:371)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("C01"),model/riscv_sys_control.sail:105)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:105)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Counteren_TM"),:1),[(E_aux(E_id(Id_aux(Id("mcounteren"),model/riscv_sys_control.sail:105)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:371)),model/riscv_sys_regs.sail:371)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:105)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("C02"),model/riscv_sys_control.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:106)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Counteren_IR"),:1),[(E_aux(E_id(Id_aux(Id("mcounteren"),model/riscv_sys_control.sail:106)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:371)),model/riscv_sys_regs.sail:371)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("C00"),model/riscv_sys_control.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("User"),model/riscv_sys_control.sail:108)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Counteren_CY"),:1),[(E_aux(E_id(Id_aux(Id("mcounteren"),model/riscv_sys_control.sail:108)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:371)),model/riscv_sys_regs.sail:371)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:108),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:108)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3613#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3613#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Counteren_CY"),:1),[(E_aux(E_id(Id_aux(Id("scounteren"),model/riscv_sys_control.sail:108)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:372)),model/riscv_sys_regs.sail:372)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3615#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3616#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3615#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3616#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3621#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3619#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3620#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3621#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3619#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3620#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("C01"),model/riscv_sys_control.sail:109)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("User"),model/riscv_sys_control.sail:109)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Counteren_TM"),:1),[(E_aux(E_id(Id_aux(Id("mcounteren"),model/riscv_sys_control.sail:109)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:371)),model/riscv_sys_regs.sail:371)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:109)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:109),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:109)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3640#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3640#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Counteren_TM"),:1),[(E_aux(E_id(Id_aux(Id("scounteren"),model/riscv_sys_control.sail:109)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:372)),model/riscv_sys_regs.sail:372)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:109)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3642#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3643#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3642#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3643#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3648#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3646#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3647#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3648#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3646#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3647#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("C02"),model/riscv_sys_control.sail:110)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("User"),model/riscv_sys_control.sail:110)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Counteren_IR"),:1),[(E_aux(E_id(Id_aux(Id("mcounteren"),model/riscv_sys_control.sail:110)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:371)),model/riscv_sys_regs.sail:371)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:110)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:110),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:110)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3667#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3667#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Counteren_IR"),:1),[(E_aux(E_id(Id_aux(Id("scounteren"),model/riscv_sys_control.sail:110)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:372)),model/riscv_sys_regs.sail:372)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:110)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3669#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3670#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3669#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3670#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3675#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3673#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3674#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3675#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3673#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3674#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102))]),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Operator("<=_u"),model/riscv_sys_control.sail:113),[(E_aux(E_lit(L_aux(L_hex("C03"),model/riscv_sys_control.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:151)),model/prelude.sail:151)));(E_aux(E_app(Id_aux(Operator("<=_u"),model/riscv_sys_control.sail:113),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_hex("C1F"),model/riscv_sys_control.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:151)),model/prelude.sail:151)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_false,model/riscv_sys_control.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_true,model/riscv_sys_control.sail:115)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("check_CSR"),model/riscv_sys_control.sail:118),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("check_CSR"),model/riscv_sys_control.sail:118),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118),P_aux(P_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:118)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118),P_aux(P_id(Id_aux(Id("p"),model/riscv_sys_control.sail:118)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118),P_aux(P_id(Id_aux(Id("isWrite"),model/riscv_sys_control.sail:118)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3701#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118))]),model/riscv_sys_control.sail:118-122)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("is_CSR_defined"),model/riscv_sys_control.sail:119),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:119)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:119)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:9)),model/riscv_sys_control.sail:9)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("check_CSR_access"),model/riscv_sys_control.sail:120),[(E_aux(E_app(Id_aux(Id("csrAccess"),model/riscv_sys_control.sail:120),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:306)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("csrPriv"),model/riscv_sys_control.sail:120),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:120)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118)));(E_aux(E_id(Id_aux(Id("isWrite"),model/riscv_sys_control.sail:120)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3701#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:94)),model/riscv_sys_control.sail:94)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("check_TVM_SATP"),model/riscv_sys_control.sail:121),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:121)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:121)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:99)),model/riscv_sys_control.sail:99)));(E_aux(E_app(Id_aux(Id("check_Counteren"),model/riscv_sys_control.sail:122),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_sys_control.sail:122)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:122)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:102)),model/riscv_sys_control.sail:102)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("speculate_conditional"),model/riscv_sys_control.sail:136),[ocaml: "Platform.speculate_conditional",interpreter: "excl_res",c: "speculate_conditional",lem: "speculate_conditional_success"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:136)),model/riscv_sys_control.sail:136))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:136)),model/riscv_sys_control.sail:136),Effect_aux(Effect_set([(BE_aux(BE_exmem,model/riscv_sys_control.sail:136))]),model/riscv_sys_control.sail:136)),model/riscv_sys_control.sail:136)),model/riscv_sys_control.sail:136))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("load_reservation"),model/riscv_sys_control.sail:138),[ocaml: "Platform.load_reservation",interpreter: "Platform.load_reservation",c: "load_reservation",lem: "load_reservation"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:138)),model/riscv_sys_control.sail:138),Effect_aux(Effect_set([]),model/riscv_sys_control.sail:138)),model/riscv_sys_control.sail:138)),model/riscv_sys_control.sail:138))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("match_reservation"),model/riscv_sys_control.sail:139),[ocaml: "Platform.match_reservation",interpreter: "Platform.match_reservation",lem: "match_reservation",c: "match_reservation"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:139)),model/riscv_sys_control.sail:139),Effect_aux(Effect_set([]),model/riscv_sys_control.sail:139)),model/riscv_sys_control.sail:139)),model/riscv_sys_control.sail:139))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("cancel_reservation"),model/riscv_sys_control.sail:140),[ocaml: "Platform.cancel_reservation",interpreter: "Platform.cancel_reservation",c: "cancel_reservation",lem: "cancel_reservation"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:140)),model/riscv_sys_control.sail:140))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:140)),model/riscv_sys_control.sail:140),Effect_aux(Effect_set([]),model/riscv_sys_control.sail:140)),model/riscv_sys_control.sail:140)),model/riscv_sys_control.sail:140))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("exception_delegatee"),model/riscv_sys_control.sail:145),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145))],Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("exception_delegatee"),model/riscv_sys_control.sail:145),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145),P_aux(P_id(Id_aux(Id("e"),model/riscv_sys_control.sail:145)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145))),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145),P_aux(P_id(Id_aux(Id("p"),model/riscv_sys_control.sail:145)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145))]),model/riscv_sys_control.sail:145-158)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("idx"),model/riscv_sys_control.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_idx"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("num_of_ExceptionType"),model/riscv_sys_control.sail:146),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_sys_control.sail:146)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:187),Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),model/riscv_types.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187),NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187),Nexp_aux(Nexp_id(Id_aux(Id("xlen"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:187),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_types.sail:187)),model/riscv_types.sail:187)),model/riscv_types.sail:187))]),model/riscv_types.sail:187)),model/riscv_types.sail:187))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("super"),model/riscv_sys_control.sail:147)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3749#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("bit_to_bool"),model/riscv_sys_control.sail:147),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_app(Id_aux(Id("_get_Medeleg_bits"),:1),[(E_aux(E_id(Id_aux(Id("medeleg"),model/riscv_sys_control.sail:147)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:295)),model/riscv_sys_regs.sail:295)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("idx"),model/riscv_sys_control.sail:147)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_idx"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:132)),model/prelude.sail:132))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("user"),model/riscv_sys_control.sail:149)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'_user"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex3749#"),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:149),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:149)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_id(Id_aux(Id("super"),model/riscv_sys_control.sail:150)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3749#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveNExt"),model/riscv_sys_control.sail:150),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:150)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:103)),model/riscv_sys_regs.sail:103)));(E_aux(E_app(Id_aux(Id("bit_to_bool"),model/riscv_sys_control.sail:150),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_app(Id_aux(Id("_get_Sedeleg_bits"),:1),[(E_aux(E_id(Id_aux(Id("sedeleg"),model/riscv_sys_control.sail:150)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:500)),model/riscv_sys_regs.sail:500)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("idx"),model/riscv_sys_control.sail:150)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_idx"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:132)),model/prelude.sail:132)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3758#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3758#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex3749#"),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_id(Id_aux(Id("super"),model/riscv_sys_control.sail:151)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3749#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("haveNExt"),model/riscv_sys_control.sail:151),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:151)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:103)),model/riscv_sys_regs.sail:103)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3762#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3762#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex3749#"),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3758#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3758#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex3749#"),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("deleg"),model/riscv_sys_control.sail:152)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_sys_control.sail:152),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:152)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102)));(E_aux(E_id(Id_aux(Id("user"),model/riscv_sys_control.sail:152)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'_user"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex3749#"),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3766#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3766#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'_user"),Unknown)),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex3749#"),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("User"),model/riscv_sys_control.sail:152)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:153),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:153)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)));(E_aux(E_id(Id_aux(Id("super"),model/riscv_sys_control.sail:153)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3749#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3771#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3771#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex3749#"),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:153)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)),E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:154)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Operator("<_u"),model/riscv_sys_control.sail:156),[(E_aux(E_app(Id_aux(Id("privLevel_to_bits"),model/riscv_sys_control.sail:156),[(E_aux(E_id(Id_aux(Id("deleg"),model/riscv_sys_control.sail:156)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("privLevel_to_bits"),model/riscv_sys_control.sail:156),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:156)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:149)),model/prelude.sail:149)),E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:157)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145)),E_aux(E_id(Id_aux(Id("deleg"),model/riscv_sys_control.sail:157)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145)))]),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145)))]),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145)))]),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145)))]),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145)))]),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145))],Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("findPendingInterrupt"),model/riscv_sys_control.sail:163),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("findPendingInterrupt"),model/riscv_sys_control.sail:163),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163),P_aux(P_id(Id_aux(Id("ip"),model/riscv_sys_control.sail:163)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("ip"),model/riscv_sys_control.sail:164)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Minterrupts"),model/riscv_sys_control.sail:164),[(E_aux(E_id(Id_aux(Id("ip"),model/riscv_sys_control.sail:164)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_MEI"),:1),[(E_aux(E_id(Id_aux(Id("ip"),model/riscv_sys_control.sail:165)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:165),[(E_aux(E_id(Id_aux(Id("I_M_External"),model/riscv_sys_control.sail:165)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),Unknown)),Unknown))]),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_MSI"),:1),[(E_aux(E_id(Id_aux(Id("ip"),model/riscv_sys_control.sail:166)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:166),[(E_aux(E_id(Id_aux(Id("I_M_Software"),model/riscv_sys_control.sail:166)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),Unknown)),Unknown))]),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_MTI"),:1),[(E_aux(E_id(Id_aux(Id("ip"),model/riscv_sys_control.sail:167)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:167)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:167),[(E_aux(E_id(Id_aux(Id("I_M_Timer"),model/riscv_sys_control.sail:167)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),Unknown)),Unknown))]),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SEI"),:1),[(E_aux(E_id(Id_aux(Id("ip"),model/riscv_sys_control.sail:168)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:168),[(E_aux(E_id(Id_aux(Id("I_S_External"),model/riscv_sys_control.sail:168)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),Unknown)),Unknown))]),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_SSI"),:1),[(E_aux(E_id(Id_aux(Id("ip"),model/riscv_sys_control.sail:169)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:169)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:169),[(E_aux(E_id(Id_aux(Id("I_S_Software"),model/riscv_sys_control.sail:169)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),Unknown)),Unknown))]),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_STI"),:1),[(E_aux(E_id(Id_aux(Id("ip"),model/riscv_sys_control.sail:170)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:170)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:170),[(E_aux(E_id(Id_aux(Id("I_S_Timer"),model/riscv_sys_control.sail:170)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),Unknown)),Unknown))]),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UEI"),:1),[(E_aux(E_id(Id_aux(Id("ip"),model/riscv_sys_control.sail:171)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:171)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:171),[(E_aux(E_id(Id_aux(Id("I_U_External"),model/riscv_sys_control.sail:171)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),Unknown)),Unknown))]),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_USI"),:1),[(E_aux(E_id(Id_aux(Id("ip"),model/riscv_sys_control.sail:172)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:172)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:172),[(E_aux(E_id(Id_aux(Id("I_U_Software"),model/riscv_sys_control.sail:172)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),Unknown)),Unknown))]),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_UTI"),:1),[(E_aux(E_id(Id_aux(Id("ip"),model/riscv_sys_control.sail:173)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:173)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:173),[(E_aux(E_id(Id_aux(Id("I_U_Timer"),model/riscv_sys_control.sail:173)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_types.sail:113)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("None"),model/riscv_sys_control.sail:174),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:174)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_interrupt_set"),model/riscv_sys_control.sail:182),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),model/riscv_sys_control.sail:182),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:182)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_interrupt_set"),model/riscv_sys_control.sail:182),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:185)),model/riscv_sys_control.sail:185),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:185)),model/riscv_sys_control.sail:185))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:185)),model/riscv_sys_control.sail:185)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:185)),model/riscv_sys_control.sail:185))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:183)),model/riscv_sys_control.sail:183),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("Ints_Pending"),model/riscv_sys_control.sail:183),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:182),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Ints_Delegated"),model/riscv_sys_control.sail:184),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:182),[]),Unknown)));(E_aux(E_app(Id_aux(Id("Ints_Empty"),model/riscv_sys_control.sail:185),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:185)),model/riscv_sys_control.sail:185)))]),Typ_aux(Typ_app(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:182),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:182)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:182)),:1))),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:182)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:182)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:182)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("processPending"),model/riscv_sys_control.sail:187),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188))],Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:187-188),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("processPending"),model/riscv_sys_control.sail:187),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187),P_aux(P_id(Id_aux(Id("xip"),model/riscv_sys_control.sail:187)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187),P_aux(P_id(Id_aux(Id("xie"),model/riscv_sys_control.sail:187)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187))),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187),P_aux(P_id(Id_aux(Id("xideleg"),model/riscv_sys_control.sail:187)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188),P_aux(P_id(Id_aux(Id("priv_enabled"),model/riscv_sys_control.sail:188)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3820#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188))]),model/riscv_sys_control.sail:187-199)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("effective_pend"),model/riscv_sys_control.sail:190)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("xip"),model/riscv_sys_control.sail:190)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("xie"),model/riscv_sys_control.sail:190)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("not_vec"),model/prelude.sail:37),[(E_aux(E_id(Id_aux(Id("xideleg"),model/riscv_sys_control.sail:190)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("effective_delg"),model/riscv_sys_control.sail:192)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("xip"),model/riscv_sys_control.sail:192)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("xideleg"),model/riscv_sys_control.sail:192)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_id(Id_aux(Id("priv_enabled"),model/riscv_sys_control.sail:194)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3820#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("effective_pend"),model/riscv_sys_control.sail:194)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:194),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:194)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3834#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3834#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex3820#"),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("Ints_Pending"),model/riscv_sys_control.sail:195),[(E_aux(E_id(Id_aux(Id("effective_pend"),model/riscv_sys_control.sail:195)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:182),[]),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("effective_delg"),model/riscv_sys_control.sail:196)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:196),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:196)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)),E_aux(E_app(Id_aux(Id("Ints_Delegated"),model/riscv_sys_control.sail:197),[(E_aux(E_id(Id_aux(Id("effective_delg"),model/riscv_sys_control.sail:197)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:182),[]),Unknown)),E_aux(E_app(Id_aux(Id("Ints_Empty"),model/riscv_sys_control.sail:198),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:198)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:182),[]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188))),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188)))]),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188))),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188)))]),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188))),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188)))]),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187));(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_control.sail:187)),model/riscv_sys_control.sail:187));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188))],Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("getPendingSet"),model/riscv_sys_control.sail:208),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208),Effect_aux(Effect_set([(BE_aux(BE_escape,Unknown));(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("getPendingSet"),model/riscv_sys_control.sail:208),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208),P_aux(P_id(Id_aux(Id("priv"),model/riscv_sys_control.sail:208)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208)),E_aux(E_block([(E_aux(E_assert(E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_sys_control.sail:209),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:209)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102)),E_aux(E_lit(L_aux(L_string("no user mode: M/U or M/S/U system required"),model/riscv_sys_control.sail:209)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("effective_pending"),model/riscv_sys_control.sail:210)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("mip"),model/riscv_sys_control.sail:210)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("mie"),model/riscv_sys_control.sail:210)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("effective_pending"),model/riscv_sys_control.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:211),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("None"),model/riscv_sys_control.sail:211),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:211)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),Unknown)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("mIE"),model/riscv_sys_control.sail:217)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'_mIE0"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_mIE1"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("neq_anything"),model/prelude.sail:47),[(E_aux(E_id(Id_aux(Id("priv"),model/riscv_sys_control.sail:217)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:217)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:43)),model/prelude.sail:43)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("priv"),model/riscv_sys_control.sail:217)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:217)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_MIE"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:217)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:217)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3852#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3856#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3852#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3856#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("sIE"),model/riscv_sys_control.sail:218)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'_sIE0"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'_sIE1"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_sIE2"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:218),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:218)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("priv"),model/riscv_sys_control.sail:218)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208)));(E_aux(E_id(Id_aux(Id("User"),model/riscv_sys_control.sail:218)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("priv"),model/riscv_sys_control.sail:218)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:218)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_SIE"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:218)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:218)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3875#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3879#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3875#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3879#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3884#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3882#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3883#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex3884#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex3882#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex3883#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("uIE"),model/riscv_sys_control.sail:219)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3894#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("haveNExt"),model/riscv_sys_control.sail:219),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:219)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:103)),model/riscv_sys_regs.sail:103)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("priv"),model/riscv_sys_control.sail:219)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208)));(E_aux(E_id(Id_aux(Id("User"),model/riscv_sys_control.sail:219)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_UIE"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:219)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:219)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("processPending"),model/riscv_sys_control.sail:220),[(E_aux(E_id(Id_aux(Id("mip"),model/riscv_sys_control.sail:220)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)));(E_aux(E_id(Id_aux(Id("mie"),model/riscv_sys_control.sail:220)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("mideleg"),model/riscv_sys_control.sail:220)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("mIE"),model/riscv_sys_control.sail:220)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'_mIE0"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_mIE1"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ints_Empty"),model/riscv_sys_control.sail:221),[(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_control.sail:221)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188)),E_aux(E_app(Id_aux(Id("None"),model/riscv_sys_control.sail:221),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:221)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ints_Pending"),model/riscv_sys_control.sail:222),[(P_aux(P_id(Id_aux(Id("p"),model/riscv_sys_control.sail:222)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("r"),model/riscv_sys_control.sail:222)),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))]),Unknown)),E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:222)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:222)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))]),Unknown))),None),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:222),[(E_aux(E_id(Id_aux(Id("r"),model/riscv_sys_control.sail:222)),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ints_Delegated"),model/riscv_sys_control.sail:223),[(P_aux(P_id(Id_aux(Id("d"),model/riscv_sys_control.sail:223)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188)),E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:224),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:224)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3904#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3904#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_id(Id_aux(Id("uIE"),model/riscv_sys_control.sail:225)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3894#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("r"),model/riscv_sys_control.sail:225)),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))]),Unknown)),E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_control.sail:225)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("User"),model/riscv_sys_control.sail:225)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))]),Unknown))),None),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:225),[(E_aux(E_id(Id_aux(Id("r"),model/riscv_sys_control.sail:225)),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),E_aux(E_app(Id_aux(Id("None"),model/riscv_sys_control.sail:226),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:226)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("processPending"),model/riscv_sys_control.sail:229),[(E_aux(E_app(Id_aux(Id("Mk_Minterrupts"),model/riscv_sys_control.sail:229),[(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_control.sail:229)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),:1)),:1)));(E_aux(E_id(Id_aux(Id("mie"),model/riscv_sys_control.sail:229)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)));(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("sideleg"),model/riscv_sys_control.sail:229)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:575)),model/riscv_sys_regs.sail:575)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("sIE"),model/riscv_sys_control.sail:229)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'_sIE0"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'_sIE1"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_sIE2"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ints_Empty"),model/riscv_sys_control.sail:230),[(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_control.sail:230)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188)),E_aux(E_app(Id_aux(Id("None"),model/riscv_sys_control.sail:230),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:230)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ints_Pending"),model/riscv_sys_control.sail:231),[(P_aux(P_id(Id_aux(Id("p"),model/riscv_sys_control.sail:231)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("r"),model/riscv_sys_control.sail:231)),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))]),Unknown)),E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:231)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:231)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))]),Unknown))),None),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:231),[(E_aux(E_id(Id_aux(Id("r"),model/riscv_sys_control.sail:231)),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ints_Delegated"),model/riscv_sys_control.sail:232),[(P_aux(P_id(Id_aux(Id("d"),model/riscv_sys_control.sail:232)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("interrupt_set"),model/riscv_sys_control.sail:188)),model/riscv_sys_control.sail:188)),E_aux(E_if(E_aux(E_id(Id_aux(Id("uIE"),model/riscv_sys_control.sail:232)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3894#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("r"),model/riscv_sys_control.sail:233)),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))]),Unknown)),E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("d"),model/riscv_sys_control.sail:233)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("User"),model/riscv_sys_control.sail:233)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))]),Unknown))),None),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:233),[(E_aux(E_id(Id_aux(Id("r"),model/riscv_sys_control.sail:233)),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),E_aux(E_app(Id_aux(Id("None"),model/riscv_sys_control.sail:234),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:234)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("dispatchInterrupt"),model/riscv_sys_control.sail:244),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244),Effect_aux(Effect_set([(BE_aux(BE_escape,Unknown));(BE_aux(BE_rreg,model/riscv_sys_regs.sail:71))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("dispatchInterrupt"),model/riscv_sys_control.sail:244),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244),P_aux(P_id(Id_aux(Id("priv"),model/riscv_sys_control.sail:244)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_sys_control.sail:248),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:248)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3964#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3964#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:248),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:248)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3970#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3970#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("haveNExt"),model/riscv_sys_control.sail:248),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:248)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:103)),model/riscv_sys_regs.sail:103)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3973#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3973#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3972#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3975#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3972#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3975#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3966#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3978#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex3979#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3966#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3978#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex3979#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_assert(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("priv"),model/riscv_sys_control.sail:249)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:249)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)),E_aux(E_lit(L_aux(L_string("invalid current privilege"),model/riscv_sys_control.sail:249)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("enabled_pending"),model/riscv_sys_control.sail:250)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("mip"),model/riscv_sys_control.sail:250)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("mie"),model/riscv_sys_control.sail:250)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("findPendingInterrupt"),model/riscv_sys_control.sail:251),[(E_aux(E_id(Id_aux(Id("enabled_pending"),model/riscv_sys_control.sail:251)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:252),[(P_aux(P_id(Id_aux(Id("i"),model/riscv_sys_control.sail:252)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("r"),model/riscv_sys_control.sail:252)),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),../sail/lib/option.sail:10));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))]),Unknown)),E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("i"),model/riscv_sys_control.sail:252)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),../sail/lib/option.sail:10)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:252)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),../sail/lib/option.sail:10));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))]),Unknown))),None),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:252),[(E_aux(E_id(Id_aux(Id("r"),model/riscv_sys_control.sail:252)),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),../sail/lib/option.sail:10));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_sys_control.sail:253),[(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_control.sail:253)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163)),E_aux(E_app(Id_aux(Id("None"),model/riscv_sys_control.sail:253),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:253)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("getPendingSet"),model/riscv_sys_control.sail:256),[(E_aux(E_id(Id_aux(Id("priv"),model/riscv_sys_control.sail:256)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_sys_control.sail:257),[(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_control.sail:257)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),E_aux(E_app(Id_aux(Id("None"),model/riscv_sys_control.sail:257),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:257)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:258),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("ip"),model/riscv_sys_control.sail:258)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("p"),model/riscv_sys_control.sail:258)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:208),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),model/riscv_sys_control.sail:208)),E_aux(E_case(E_aux(E_app(Id_aux(Id("findPendingInterrupt"),model/riscv_sys_control.sail:258),[(E_aux(E_id(Id_aux(Id("ip"),model/riscv_sys_control.sail:258)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_sys_control.sail:259),[(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_control.sail:259)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163)),E_aux(E_app(Id_aux(Id("None"),model/riscv_sys_control.sail:259),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:259)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:260),[(P_aux(P_id(Id_aux(Id("i"),model/riscv_sys_control.sail:260)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:163),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163)),model/riscv_sys_control.sail:163))]),model/riscv_sys_control.sail:163)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("r"),model/riscv_sys_control.sail:260)),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),../sail/lib/option.sail:10));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),Unknown)),E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("i"),model/riscv_sys_control.sail:260)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),../sail/lib/option.sail:10)));(E_aux(E_id(Id_aux(Id("p"),model/riscv_sys_control.sail:260)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),../sail/lib/option.sail:10));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),Unknown))),None),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:260),[(E_aux(E_id(Id_aux(Id("r"),model/riscv_sys_control.sail:260)),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:163)),../sail/lib/option.sail:10));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:208)),model/riscv_sys_control.sail:208))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_ctl_result"),model/riscv_sys_control.sail:268),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),model/riscv_sys_control.sail:268),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_ctl_result"),model/riscv_sys_control.sail:268),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:269)),model/riscv_sys_control.sail:269),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:269)),model/riscv_sys_control.sail:269))),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:269)),model/riscv_sys_control.sail:269)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:269)),model/riscv_sys_control.sail:269))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:270)),model/riscv_sys_control.sail:270),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:270)),model/riscv_sys_control.sail:270))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:270)),model/riscv_sys_control.sail:270)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:270)),model/riscv_sys_control.sail:270))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("CTL_TRAP"),model/riscv_sys_control.sail:269),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:269)),model/riscv_sys_control.sail:269)))]),Typ_aux(Typ_app(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268),[]),Unknown)));(E_aux(E_app(Id_aux(Id("CTL_SRET"),model/riscv_sys_control.sail:270),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:270)),model/riscv_sys_control.sail:270)))]),Typ_aux(Typ_app(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268),[]),Unknown)));(E_aux(E_app(Id_aux(Id("CTL_MRET"),model/riscv_sys_control.sail:271),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:270)),model/riscv_sys_control.sail:270)))]),Typ_aux(Typ_app(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268),[]),Unknown)));(E_aux(E_app(Id_aux(Id("CTL_URET"),model/riscv_sys_control.sail:272),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:270)),model/riscv_sys_control.sail:270)))]),Typ_aux(Typ_app(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268)),:1))),Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("tval"),model/riscv_sys_control.sail:277),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:277),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:277)),model/riscv_sys_control.sail:277)),model/riscv_sys_control.sail:277))]),model/riscv_sys_control.sail:277))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:277)),model/riscv_sys_control.sail:277),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:277)),model/riscv_sys_control.sail:277)),model/riscv_sys_control.sail:277),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("tval"),model/riscv_sys_control.sail:277),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:277),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:277)),model/riscv_sys_control.sail:277)),model/riscv_sys_control.sail:277))]),model/riscv_sys_control.sail:277),P_aux(P_id(Id_aux(Id("excinfo"),model/riscv_sys_control.sail:277)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:277),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_control.sail:277))]),model/riscv_sys_control.sail:277))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:277),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_control.sail:277))]),model/riscv_sys_control.sail:277)),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("excinfo"),model/riscv_sys_control.sail:278)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:277),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_control.sail:277))]),model/riscv_sys_control.sail:277)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:279),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_sys_control.sail:279)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:277),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_control.sail:277))]),model/riscv_sys_control.sail:277)),E_aux(E_id(Id_aux(Id("e"),model/riscv_sys_control.sail:279)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_sys_control.sail:280),[(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_control.sail:280)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:277),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_control.sail:277))]),model/riscv_sys_control.sail:277)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:280),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:280)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:277),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_control.sail:277))]),model/riscv_sys_control.sail:277))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("rvfi_trap"),model/riscv_sys_control.sail:289),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:289)),model/riscv_sys_control.sail:289))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:289)),model/riscv_sys_control.sail:289),Effect_aux(Effect_set([]),model/riscv_sys_control.sail:289)),model/riscv_sys_control.sail:289)),model/riscv_sys_control.sail:289))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("rvfi_trap"),model/riscv_sys_control.sail:290),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_control.sail:290)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:290)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:289)),model/riscv_sys_control.sail:289))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:289)),model/riscv_sys_control.sail:289),Effect_aux(Effect_set([]),model/riscv_sys_control.sail:289)),model/riscv_sys_control.sail:289)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("trap_handler"),model/riscv_sys_control.sail:295),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295));(Typ_aux(Typ_id(Id_aux(Id("exc_code"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_exception"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:296)),model/riscv_sys_control.sail:296),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_types.sail:248));(BE_aux(BE_rreg,model/riscv_sys_regs.sail:134));(BE_aux(BE_wreg,:1))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:296)),model/riscv_sys_control.sail:296)),model/riscv_sys_control.sail:295-296),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("trap_handler"),model/riscv_sys_control.sail:295),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295),P_aux(P_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:295)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295),P_aux(P_id(Id_aux(Id("intr"),model/riscv_sys_control.sail:295)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4017#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("exc_code"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295),P_aux(P_id(Id_aux(Id("c"),model/riscv_sys_control.sail:295)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295),P_aux(P_id(Id_aux(Id("pc"),model/riscv_sys_control.sail:295)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295),P_aux(P_id(Id_aux(Id("info"),model/riscv_sys_control.sail:295)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_exception"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295),P_aux(P_id(Id_aux(Id("ext"),model/riscv_sys_control.sail:295)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295-371)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("rvfi_trap"),model/riscv_sys_control.sail:297),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:297)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:289)),model/riscv_sys_control.sail:289)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_sys_control.sail:298),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:298)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_sys_control.sail:299),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("handling "),model/riscv_sys_control.sail:299)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_if(E_aux(E_id(Id_aux(Id("intr"),model/riscv_sys_control.sail:299)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4017#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string("int#"),model/riscv_sys_control.sail:299)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_string("exc#"),model/riscv_sys_control.sail:299)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("c"),model/riscv_sys_control.sail:300)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" at priv "),model/riscv_sys_control.sail:300)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("privLevel_to_str"),model/riscv_types.sail:92),[(E_aux(E_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:300)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:84)),model/riscv_types.sail:84)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" with tval "),model/riscv_sys_control.sail:301)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("tval"),model/riscv_sys_control.sail:301),[(E_aux(E_id(Id_aux(Id("info"),model/riscv_sys_control.sail:301)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:301)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("cancel_reservation"),model/riscv_sys_control.sail:303),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:303)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:140)),model/riscv_sys_control.sail:140)));(E_aux(E_case(E_aux(E_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:305)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:306)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("_set_Mcause_IsInterrupt"),:1),[(E_aux(E_ref(Id_aux(Id("mcause"),model/riscv_sys_control.sail:307)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:325)),model/riscv_sys_regs.sail:325)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bool_to_bits"),model/riscv_sys_control.sail:307),[(E_aux(E_id(Id_aux(Id("intr"),model/riscv_sys_control.sail:307)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4017#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mcause_Cause"),:1),[(E_aux(E_ref(Id_aux(Id("mcause"),model/riscv_sys_control.sail:308)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:325)),model/riscv_sys_regs.sail:325)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:308),[(E_aux(E_lit(L_aux(L_num(63),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("c"),model/riscv_sys_control.sail:308)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mstatus_MPIE"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:310)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_MIE"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:310)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mstatus_MIE"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:311)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:311)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mstatus_MPP"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:312)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("privLevel_to_bits"),model/riscv_sys_control.sail:312),[(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:312)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mtval"),model/riscv_sys_control.sail:313)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("tval"),model/riscv_sys_control.sail:313),[(E_aux(E_id(Id_aux(Id("info"),model/riscv_sys_control.sail:313)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mepc"),model/riscv_sys_control.sail:314)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("pc"),model/riscv_sys_control.sail:314)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:316)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)),E_aux(E_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:316)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("handle_trap_extension"),model/riscv_sys_control.sail:318),[(E_aux(E_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:318)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)));(E_aux(E_id(Id_aux(Id("pc"),model/riscv_sys_control.sail:318)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ext"),model/riscv_sys_control.sail:318)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_reg"),model/riscv_sys_control.sail:320),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:320)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:106)),model/prelude.sail:106)),E_aux(E_app(Id_aux(Id("print_reg"),model/riscv_sys_control.sail:321),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("CSR mstatus <- "),model/riscv_sys_control.sail:321)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:321)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:101)),model/prelude.sail:101)),E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:321)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("prepare_trap_vector"),model/riscv_sys_control.sail:323),[(E_aux(E_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:323)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)));(E_aux(E_id(Id_aux(Id("mcause"),model/riscv_sys_control.sail:323)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:325)),model/riscv_sys_regs.sail:325)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:325)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)),E_aux(E_block([(E_aux(E_assert(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_sys_control.sail:326),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:326)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)),E_aux(E_lit(L_aux(L_string("no supervisor mode present for delegation"),model/riscv_sys_control.sail:326)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("_set_Mcause_IsInterrupt"),:1),[(E_aux(E_ref(Id_aux(Id("scause"),model/riscv_sys_control.sail:328)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:581)),model/riscv_sys_regs.sail:581)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bool_to_bits"),model/riscv_sys_control.sail:328),[(E_aux(E_id(Id_aux(Id("intr"),model/riscv_sys_control.sail:328)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4017#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mcause_Cause"),:1),[(E_aux(E_ref(Id_aux(Id("scause"),model/riscv_sys_control.sail:329)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:581)),model/riscv_sys_regs.sail:581)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:329),[(E_aux(E_lit(L_aux(L_num(63),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("c"),model/riscv_sys_control.sail:329)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mstatus_SPIE"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:331)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_SIE"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:331)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mstatus_SIE"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:332)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:332)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mstatus_SPP"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:333)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_case(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:333)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("User"),model/riscv_sys_control.sail:334)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:334)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:335)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:335)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:336)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_sys_control.sail:336),[(E_aux(E_lit(L_aux(L_string("invalid privilege for s-mode trap"),model/riscv_sys_control.sail:336)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("stval"),model/riscv_sys_control.sail:338)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("tval"),model/riscv_sys_control.sail:338),[(E_aux(E_id(Id_aux(Id("info"),model/riscv_sys_control.sail:338)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("sepc"),model/riscv_sys_control.sail:339)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("pc"),model/riscv_sys_control.sail:339)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:341)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)),E_aux(E_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:341)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("handle_trap_extension"),model/riscv_sys_control.sail:343),[(E_aux(E_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:343)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)));(E_aux(E_id(Id_aux(Id("pc"),model/riscv_sys_control.sail:343)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ext"),model/riscv_sys_control.sail:343)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_reg"),model/riscv_sys_control.sail:345),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:345)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:106)),model/prelude.sail:106)),E_aux(E_app(Id_aux(Id("print_reg"),model/riscv_sys_control.sail:346),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("CSR mstatus <- "),model/riscv_sys_control.sail:346)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:346)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:101)),model/prelude.sail:101)),E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:346)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("prepare_trap_vector"),model/riscv_sys_control.sail:348),[(E_aux(E_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:348)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)));(E_aux(E_id(Id_aux(Id("scause"),model/riscv_sys_control.sail:348)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:581)),model/riscv_sys_regs.sail:581)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("User"),model/riscv_sys_control.sail:350)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)),E_aux(E_block([(E_aux(E_assert(E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_sys_control.sail:351),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:351)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102)),E_aux(E_lit(L_aux(L_string("no user mode present for delegation"),model/riscv_sys_control.sail:351)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("_set_Mcause_IsInterrupt"),:1),[(E_aux(E_ref(Id_aux(Id("ucause"),model/riscv_sys_control.sail:353)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_next_regs.sail:82)),model/riscv_next_regs.sail:82)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bool_to_bits"),model/riscv_sys_control.sail:353),[(E_aux(E_id(Id_aux(Id("intr"),model/riscv_sys_control.sail:353)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4017#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mcause_Cause"),:1),[(E_aux(E_ref(Id_aux(Id("ucause"),model/riscv_sys_control.sail:354)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_next_regs.sail:82)),model/riscv_next_regs.sail:82)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:354),[(E_aux(E_lit(L_aux(L_num(63),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("c"),model/riscv_sys_control.sail:354)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mstatus_UPIE"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:356)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_UIE"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:356)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mstatus_UIE"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:357)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:357)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("utval"),model/riscv_sys_control.sail:358)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("tval"),model/riscv_sys_control.sail:358),[(E_aux(E_id(Id_aux(Id("info"),model/riscv_sys_control.sail:358)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("uepc"),model/riscv_sys_control.sail:359)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("pc"),model/riscv_sys_control.sail:359)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:361)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)),E_aux(E_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:361)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("handle_trap_extension"),model/riscv_sys_control.sail:363),[(E_aux(E_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:363)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)));(E_aux(E_id(Id_aux(Id("pc"),model/riscv_sys_control.sail:363)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ext"),model/riscv_sys_control.sail:363)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:10)),model/riscv_sys_exceptions.sail:10)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_reg"),model/riscv_sys_control.sail:365),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:365)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:106)),model/prelude.sail:106)),E_aux(E_app(Id_aux(Id("print_reg"),model/riscv_sys_control.sail:366),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("CSR mstatus <- "),model/riscv_sys_control.sail:366)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:366)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:101)),model/prelude.sail:101)),E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:366)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("prepare_trap_vector"),model/riscv_sys_control.sail:368),[(E_aux(E_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:368)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295)));(E_aux(E_id(Id_aux(Id("ucause"),model/riscv_sys_control.sail:368)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_next_regs.sail:82)),model/riscv_next_regs.sail:82)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:295)),model/riscv_sys_control.sail:295));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_control.sail:295))]),model/riscv_sys_control.sail:295))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("exception_handler"),model/riscv_sys_control.sail:373),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373));(Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:374)),model/riscv_sys_control.sail:374))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:374)),model/riscv_sys_control.sail:374),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_types.sail:248));(BE_aux(BE_rreg,model/riscv_sys_regs.sail:134));(BE_aux(BE_wreg,:1))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:374)),model/riscv_sys_control.sail:374)),model/riscv_sys_control.sail:373-374),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("exception_handler"),model/riscv_sys_control.sail:373),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373),P_aux(P_id(Id_aux(Id("cur_priv"),model/riscv_sys_control.sail:373)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373),P_aux(P_id(Id_aux(Id("ctl"),model/riscv_sys_control.sail:373)),Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373))),Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:374)),model/riscv_sys_control.sail:374),P_aux(P_id(Id_aux(Id("pc"),model/riscv_sys_control.sail:374)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373));(Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:373-430)),E_aux(E_block([(E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("cur_priv"),model/riscv_sys_control.sail:375)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373)));(E_aux(E_id(Id_aux(Id("ctl"),model/riscv_sys_control.sail:375)),Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373));(Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373)));(P_aux(P_app(Id_aux(Id("CTL_TRAP"),model/riscv_sys_control.sail:376),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_sys_control.sail:376)),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:269)),model/riscv_sys_control.sail:269)))]),Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373));(Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373))]),Unknown)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:377)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145)),E_aux(E_app(Id_aux(Id("exception_delegatee"),model/riscv_sys_control.sail:377),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("e"),model/riscv_sys_control.sail:377)),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:269)),model/riscv_sys_control.sail:269)),Id_aux(Id("trap"),model/riscv_sys_control.sail:377)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sync_exception.sail:4)),model/riscv_sync_exception.sail:4)));(E_aux(E_id(Id_aux(Id("cur_priv"),model/riscv_sys_control.sail:377)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373)))]),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_sys_control.sail:378),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:378)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_sys_control.sail:379),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("trapping from "),model/riscv_sys_control.sail:379)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("privLevel_to_str"),model/riscv_types.sail:92),[(E_aux(E_id(Id_aux(Id("cur_priv"),model/riscv_sys_control.sail:379)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:84)),model/riscv_types.sail:84)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" to "),model/riscv_sys_control.sail:379)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("privLevel_to_str"),model/riscv_types.sail:92),[(E_aux(E_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:379)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:84)),model/riscv_types.sail:84)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" to handle "),model/riscv_sys_control.sail:380)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("exceptionType_to_str"),model/riscv_types.sail:236),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("e"),model/riscv_sys_control.sail:380)),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:269)),model/riscv_sys_control.sail:269)),Id_aux(Id("trap"),model/riscv_sys_control.sail:380)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sync_exception.sail:4)),model/riscv_sync_exception.sail:4)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:212)),model/riscv_types.sail:212)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:380)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("trap_handler"),model/riscv_sys_control.sail:381),[(E_aux(E_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:381)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:145)),model/riscv_sys_control.sail:145)));(E_aux(E_lit(L_aux(L_false,model/riscv_sys_control.sail:381)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("exceptionType_to_bits"),model/riscv_sys_control.sail:381),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("e"),model/riscv_sys_control.sail:381)),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:269)),model/riscv_sys_control.sail:269)),Id_aux(Id("trap"),model/riscv_sys_control.sail:381)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sync_exception.sail:4)),model/riscv_sync_exception.sail:4)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pc"),model/riscv_sys_control.sail:381)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_field(E_aux(E_id(Id_aux(Id("e"),model/riscv_sys_control.sail:381)),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:269)),model/riscv_sys_control.sail:269)),Id_aux(Id("excinfo"),model/riscv_sys_control.sail:381)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sync_exception.sail:5),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_sync_exception.sail:5))]),model/riscv_sync_exception.sail:5)));(E_aux(E_field(E_aux(E_id(Id_aux(Id("e"),model/riscv_sys_control.sail:381)),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:269)),model/riscv_sys_control.sail:269)),Id_aux(Id("ext"),model/riscv_sys_control.sail:381)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sync_exception.sail:6),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:3)),model/riscv_sys_exceptions.sail:3)),model/riscv_sync_exception.sail:6))]),model/riscv_sync_exception.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373)));(P_aux(P_app(Id_aux(Id("CTL_MRET"),model/riscv_sys_control.sail:383),[(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_control.sail:383)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373));(Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373))]),Unknown)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("prev_priv"),model/riscv_sys_control.sail:384)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:384)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("_set_Mstatus_MIE"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:385)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_MPIE"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:385)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mstatus_MPIE"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:386)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:386)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:387)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:76)),model/riscv_types.sail:76)),E_aux(E_app(Id_aux(Id("privLevel_of_bits"),model/riscv_sys_control.sail:387),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_MPP"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:387)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:76)),model/riscv_types.sail:76))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("_set_Mstatus_MPP"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:388)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("privLevel_to_bits"),model/riscv_sys_control.sail:388),[(E_aux(E_if(E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_sys_control.sail:388),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:388)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102)),E_aux(E_id(Id_aux(Id("User"),model/riscv_sys_control.sail:388)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)),E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:388)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:68)),model/riscv_types.sail:68)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:65)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_reg"),model/riscv_sys_control.sail:390),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:390)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:106)),model/prelude.sail:106)),E_aux(E_app(Id_aux(Id("print_reg"),model/riscv_sys_control.sail:391),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("CSR mstatus <- "),model/riscv_sys_control.sail:391)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:391)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:101)),model/prelude.sail:101)),E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:391)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_sys_control.sail:392),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:392)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_sys_control.sail:393),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("ret-ing from "),model/riscv_sys_control.sail:393)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("privLevel_to_str"),model/riscv_types.sail:92),[(E_aux(E_id(Id_aux(Id("prev_priv"),model/riscv_sys_control.sail:393)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:84)),model/riscv_types.sail:84)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" to "),model/riscv_sys_control.sail:393)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("privLevel_to_str"),model/riscv_types.sail:92),[(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:393)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:84)),model/riscv_types.sail:84)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:393)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("cancel_reservation"),model/riscv_sys_control.sail:395),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:395)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:140)),model/riscv_sys_control.sail:140)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("prepare_xret_target"),model/riscv_sys_control.sail:396),[(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:396)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("pc_alignment_mask"),model/riscv_sys_control.sail:396),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:396)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373)));(P_aux(P_app(Id_aux(Id("CTL_SRET"),model/riscv_sys_control.sail:398),[(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_control.sail:398)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373));(Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373))]),Unknown)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("prev_priv"),model/riscv_sys_control.sail:399)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:399)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("_set_Mstatus_SIE"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:400)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_SPIE"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:400)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mstatus_SPIE"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:401)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:401)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:402)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_SPP"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:402)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:402)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:402)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)),E_aux(E_id(Id_aux(Id("User"),model/riscv_sys_control.sail:402)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("_set_Mstatus_SPP"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:404)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:404)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_reg"),model/riscv_sys_control.sail:406),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:406)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:106)),model/prelude.sail:106)),E_aux(E_app(Id_aux(Id("print_reg"),model/riscv_sys_control.sail:407),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("CSR mstatus <- "),model/riscv_sys_control.sail:407)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:407)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:101)),model/prelude.sail:101)),E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:407)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_sys_control.sail:408),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:408)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_sys_control.sail:409),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("ret-ing from "),model/riscv_sys_control.sail:409)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("privLevel_to_str"),model/riscv_types.sail:92),[(E_aux(E_id(Id_aux(Id("prev_priv"),model/riscv_sys_control.sail:409)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:84)),model/riscv_types.sail:84)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" to "),model/riscv_sys_control.sail:410)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("privLevel_to_str"),model/riscv_types.sail:92),[(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:410)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:84)),model/riscv_types.sail:84)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:410)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("cancel_reservation"),model/riscv_sys_control.sail:412),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:412)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:140)),model/riscv_sys_control.sail:140)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("prepare_xret_target"),model/riscv_sys_control.sail:413),[(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_sys_control.sail:413)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("pc_alignment_mask"),model/riscv_sys_control.sail:413),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:413)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373)));(P_aux(P_app(Id_aux(Id("CTL_URET"),model/riscv_sys_control.sail:415),[(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_control.sail:415)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373));(Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373))]),Unknown)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("prev_priv"),model/riscv_sys_control.sail:416)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:416)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("_set_Mstatus_UIE"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:417)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_UPIE"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:417)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mstatus_UPIE"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:418)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:418)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:419)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)),E_aux(E_id(Id_aux(Id("User"),model/riscv_sys_control.sail:419)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_reg"),model/riscv_sys_control.sail:421),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:421)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:106)),model/prelude.sail:106)),E_aux(E_app(Id_aux(Id("print_reg"),model/riscv_sys_control.sail:422),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("CSR mstatus <- "),model/riscv_sys_control.sail:422)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:422)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:101)),model/prelude.sail:101)),E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:422)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_sys_control.sail:423),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:423)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_sys_control.sail:424),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("ret-ing from "),model/riscv_sys_control.sail:424)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("privLevel_to_str"),model/riscv_types.sail:92),[(E_aux(E_id(Id_aux(Id("prev_priv"),model/riscv_sys_control.sail:424)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:84)),model/riscv_types.sail:84)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" to "),model/riscv_sys_control.sail:424)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("privLevel_to_str"),model/riscv_types.sail:92),[(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:424)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:84)),model/riscv_types.sail:84)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:424)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("cancel_reservation"),model/riscv_sys_control.sail:426),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:426)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:140)),model/riscv_sys_control.sail:140)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("prepare_xret_target"),model/riscv_sys_control.sail:427),[(E_aux(E_id(Id_aux(Id("User"),model/riscv_sys_control.sail:427)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("pc_alignment_mask"),model/riscv_sys_control.sail:427),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:427)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373));(Typ_aux(Typ_id(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:373)),model/riscv_sys_control.sail:373));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("handle_mem_exception"),model/riscv_sys_control.sail:432),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432));(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_types.sail:248));(BE_aux(BE_rreg,model/riscv_sys_regs.sail:5));(BE_aux(BE_wreg,:1))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("handle_mem_exception"),model/riscv_sys_control.sail:432),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432),P_aux(P_id(Id_aux(Id("addr"),model/riscv_sys_control.sail:432)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432),P_aux(P_id(Id_aux(Id("e"),model/riscv_sys_control.sail:432)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432))),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432))]),model/riscv_sys_control.sail:432-437)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:433)),model/riscv_sys_control.sail:433),P_aux(P_id(Id_aux(Id("t"),model/riscv_sys_control.sail:433)),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:433)),model/riscv_sys_control.sail:433))),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:433)),model/riscv_sys_control.sail:433)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("trap"),model/riscv_sys_control.sail:433),E_aux(E_id(Id_aux(Id("e"),model/riscv_sys_control.sail:433)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432))),None));(FE_aux(FE_Fexp(Id_aux(Id("excinfo"),model/riscv_sys_control.sail:434),E_aux(E_app(Id_aux(Id("Some"),model/riscv_sys_control.sail:434),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_sys_control.sail:434)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None));(FE_aux(FE_Fexp(Id_aux(Id("ext"),model/riscv_sys_control.sail:435),E_aux(E_app(Id_aux(Id("None"),model/riscv_sys_control.sail:435),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:435)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:3)),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:433)),model/riscv_sys_control.sail:433))),None),E_aux(E_app(Id_aux(Id("set_next_pc"),model/riscv_sys_control.sail:436),[(E_aux(E_app(Id_aux(Id("exception_handler"),model/riscv_sys_control.sail:436),[(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:436)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)));(E_aux(E_app(Id_aux(Id("CTL_TRAP"),model/riscv_sys_control.sail:436),[(E_aux(E_id(Id_aux(Id("t"),model/riscv_sys_control.sail:436)),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_sys_control.sail:433)),model/riscv_sys_control.sail:433)))]),Typ_aux(Typ_app(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268),[]),Unknown)));(E_aux(E_id(Id_aux(Id("PC"),model/riscv_sys_control.sail:436)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("handle_interrupt"),model/riscv_sys_control.sail:439),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_types.sail:248));(BE_aux(BE_rreg,model/riscv_regs.sail:3));(BE_aux(BE_wreg,:1))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("handle_interrupt"),model/riscv_sys_control.sail:439),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439),P_aux(P_id(Id_aux(Id("i"),model/riscv_sys_control.sail:439)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439))),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439),P_aux(P_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:439)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439))]),model/riscv_sys_control.sail:439-440)),E_aux(E_app(Id_aux(Id("set_next_pc"),model/riscv_sys_control.sail:440),[(E_aux(E_app(Id_aux(Id("trap_handler"),model/riscv_sys_control.sail:440),[(E_aux(E_id(Id_aux(Id("del_priv"),model/riscv_sys_control.sail:440)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439)));(E_aux(E_lit(L_aux(L_true,model/riscv_sys_control.sail:440)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("interruptType_to_bits"),model/riscv_sys_control.sail:440),[(E_aux(E_id(Id_aux(Id("i"),model/riscv_sys_control.sail:440)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("PC"),model/riscv_sys_control.sail:440)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("None"),model/riscv_sys_control.sail:440),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:440)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("None"),model/riscv_sys_control.sail:440),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:440)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("init_sys"),model/riscv_sys_control.sail:444),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:444)),model/riscv_sys_control.sail:444),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:134));(BE_aux(BE_wreg,model/riscv_sys_regs.sail:5))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:444)),model/riscv_sys_control.sail:444)),model/riscv_sys_control.sail:444),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("init_sys"),model/riscv_sys_control.sail:444),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_sys_control.sail:444)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("cur_privilege"),model/riscv_sys_control.sail:445)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)),E_aux(E_id(Id_aux(Id("Machine"),model/riscv_sys_control.sail:445)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mhartid"),model/riscv_sys_control.sail:447)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:447),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:447)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("_set_Misa_MXL"),:1),[(E_aux(E_ref(Id_aux(Id("misa"),model/riscv_sys_control.sail:449)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("arch_to_bits"),model/riscv_sys_control.sail:449),[(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_sys_control.sail:449)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_id(Id_aux(Id("RV32"),model/riscv_sys_control.sail:449)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)),E_aux(E_id(Id_aux(Id("RV64"),model/riscv_sys_control.sail:449)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:56)),model/riscv_types.sail:56)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Misa_A"),:1),[(E_aux(E_ref(Id_aux(Id("misa"),model/riscv_sys_control.sail:450)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:450)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Misa_C"),:1),[(E_aux(E_ref(Id_aux(Id("misa"),model/riscv_sys_control.sail:451)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bool_to_bits"),model/riscv_sys_control.sail:451),[(E_aux(E_app(Id_aux(Id("sys_enable_rvc"),model/riscv_sys_control.sail:451),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:451)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:76)),model/riscv_sys_regs.sail:76)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Misa_I"),:1),[(E_aux(E_ref(Id_aux(Id("misa"),model/riscv_sys_control.sail:452)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:452)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Misa_M"),:1),[(E_aux(E_ref(Id_aux(Id("misa"),model/riscv_sys_control.sail:453)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:453)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Misa_U"),:1),[(E_aux(E_ref(Id_aux(Id("misa"),model/riscv_sys_control.sail:454)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:454)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Misa_S"),:1),[(E_aux(E_ref(Id_aux(Id("misa"),model/riscv_sys_control.sail:455)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_sys_control.sail:455)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:457)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147)),E_aux(E_app(Id_aux(Id("set_mstatus_SXL"),model/riscv_sys_control.sail:457),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:457)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)));(E_aux(E_app(Id_aux(Id("_get_Misa_MXL"),:1),[(E_aux(E_id(Id_aux(Id("misa"),model/riscv_sys_control.sail:457)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:147)),model/riscv_sys_regs.sail:147))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:458)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162)),E_aux(E_app(Id_aux(Id("set_mstatus_UXL"),model/riscv_sys_control.sail:458),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:458)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)));(E_aux(E_app(Id_aux(Id("_get_Misa_MXL"),:1),[(E_aux(E_id(Id_aux(Id("misa"),model/riscv_sys_control.sail:458)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:162)),model/riscv_sys_regs.sail:162))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("_set_Mstatus_SD"),:1),[(E_aux(E_ref(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:459)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:459)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Minterrupts_bits"),:1),[(E_aux(E_ref(Id_aux(Id("mip"),model/riscv_sys_control.sail:461)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:461),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:461)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Minterrupts_bits"),:1),[(E_aux(E_ref(Id_aux(Id("mie"),model/riscv_sys_control.sail:462)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:462),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:462)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Minterrupts_bits"),:1),[(E_aux(E_ref(Id_aux(Id("mideleg"),model/riscv_sys_control.sail:463)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:463),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:463)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Medeleg_bits"),:1),[(E_aux(E_ref(Id_aux(Id("medeleg"),model/riscv_sys_control.sail:464)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:295)),model/riscv_sys_regs.sail:295)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:464),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:464)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mtvec_bits"),:1),[(E_aux(E_ref(Id_aux(Id("mtvec"),model/riscv_sys_control.sail:465)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:310)),model/riscv_sys_regs.sail:310)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:465),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:465)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_set_Mcause_bits"),:1),[(E_aux(E_ref(Id_aux(Id("mcause"),model/riscv_sys_control.sail:466)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:325)),model/riscv_sys_regs.sail:325)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:466),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:466)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mepc"),model/riscv_sys_control.sail:467)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:467),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:467)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mtval"),model/riscv_sys_control.sail:468)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:468),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:468)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mscratch"),model/riscv_sys_control.sail:469)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:469),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:469)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mcycle"),model/riscv_sys_control.sail:471)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:471),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:471)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mtime"),model/riscv_sys_control.sail:472)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:472),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:472)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("_set_Counteren_bits"),:1),[(E_aux(E_ref(Id_aux(Id("mcounteren"),model/riscv_sys_control.sail:474)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:371)),model/riscv_sys_regs.sail:371)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:474),[(E_aux(E_lit(L_aux(L_num(32),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:474)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("minstret"),model/riscv_sys_control.sail:476)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:476),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:476)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("minstret_written"),model/riscv_sys_control.sail:477)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/riscv_sys_control.sail:477)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("init_pmp"),model/riscv_sys_control.sail:479),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:479)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_control.sail:168)),model/riscv_pmp_control.sail:168)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_reg"),model/riscv_sys_control.sail:482),[(E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:482)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:106)),model/prelude.sail:106)),E_aux(E_app(Id_aux(Id("print_reg"),model/riscv_sys_control.sail:483),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("CSR mstatus <- "),model/riscv_sys_control.sail:483)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_sys_control.sail:483)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" (input: "),model/riscv_sys_control.sail:483)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_control.sail:483)),model/riscv_sys_control.sail:483),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_sys_control.sail:483),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_sys_control.sail:483)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_lit(L_aux(L_string(")"),model/riscv_sys_control.sail:483)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:101)),model/prelude.sail:101)),E_aux(E_lit(L_aux(L_unit,model/riscv_sys_control.sail:483)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:444)),model/riscv_sys_control.sail:444)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:444)),model/riscv_sys_control.sail:444))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:444)),model/riscv_sys_control.sail:444),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_MemoryOpResult"),model/riscv_sys_control.sail:488),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/riscv_sys_control.sail:488),Kid_aux(Var("'a"),model/riscv_sys_control.sail:488)),model/riscv_sys_control.sail:488)),model/riscv_sys_control.sail:488))]),model/riscv_sys_control.sail:488),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:488)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:488)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_MemoryOpResult"),model/riscv_sys_control.sail:488),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("typ_a"),model/riscv_sys_control.sail:488)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:488)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490))),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:489)),model/riscv_sys_control.sail:489),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:489)),model/riscv_sys_control.sail:489))),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:489)),model/riscv_sys_control.sail:489)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:489)),model/riscv_sys_control.sail:489))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_sys_control.sail:489),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:489)),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:488)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("MemException"),model/riscv_sys_control.sail:490),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:488)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:488)),Unknown)),Unknown))]),:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:488)),Unknown)),Unknown))]),:1))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:488)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:488)),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:488)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'a"),model/riscv_sys_control.sail:488)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("MemoryOpResult_add_meta"),model/riscv_sys_control.sail:493),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/riscv_sys_control.sail:493),Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493))]),model/riscv_sys_control.sail:493),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:493),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493))]),model/riscv_sys_control.sail:493));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:493),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493))]),model/riscv_sys_control.sail:493),Effect_aux(Effect_set([]),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("MemoryOpResult_add_meta"),model/riscv_sys_control.sail:494),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r"),model/riscv_sys_control.sail:494)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:493),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493))]),model/riscv_sys_control.sail:493)));(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_control.sail:494)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:493),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493))]),model/riscv_sys_control.sail:493));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_sys_control.sail:494-497)),E_aux(E_case(E_aux(E_id(Id_aux(Id("r"),model/riscv_sys_control.sail:494)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:493),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493))]),model/riscv_sys_control.sail:493)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_sys_control.sail:495),[(P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_control.sail:495)),Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:493),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493))]),model/riscv_sys_control.sail:493)),E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_sys_control.sail:495),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_control.sail:495)),Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:489)));(E_aux(E_id(Id_aux(Id("m"),model/riscv_sys_control.sail:495)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_sys_control.sail:496),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_sys_control.sail:496)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:493),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493))]),model/riscv_sys_control.sail:493)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_sys_control.sail:496),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_sys_control.sail:496)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:493),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493))]),model/riscv_sys_control.sail:493))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:493),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493))]),model/riscv_sys_control.sail:493));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:493),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493))]),model/riscv_sys_control.sail:493),Effect_aux(Effect_set([]),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("MemoryOpResult_drop_meta"),model/riscv_sys_control.sail:499),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/riscv_sys_control.sail:499),Kid_aux(Var("'t"),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499))]),model/riscv_sys_control.sail:499),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:499),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499))]),model/riscv_sys_control.sail:499))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:499),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499))]),model/riscv_sys_control.sail:499),Effect_aux(Effect_set([]),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("MemoryOpResult_drop_meta"),model/riscv_sys_control.sail:500),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("r"),model/riscv_sys_control.sail:500)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:499),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499))]),model/riscv_sys_control.sail:499)),E_aux(E_case(E_aux(E_id(Id_aux(Id("r"),model/riscv_sys_control.sail:500)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:499),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499))]),model/riscv_sys_control.sail:499)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_sys_control.sail:501),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),model/riscv_sys_control.sail:501)),Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499)));(P_aux(P_id(Id_aux(Id("m"),model/riscv_sys_control.sail:501)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:499),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499))]),model/riscv_sys_control.sail:499)),E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_sys_control.sail:501),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_sys_control.sail:501)),Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:499)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_sys_control.sail:502),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_sys_control.sail:502)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:499),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499))]),model/riscv_sys_control.sail:499)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_sys_control.sail:502),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_sys_control.sail:502)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:499)),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:499),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499))]),model/riscv_sys_control.sail:499))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:499),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499))]),model/riscv_sys_control.sail:499))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:499),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'t"),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499))]),model/riscv_sys_control.sail:499),Effect_aux(Effect_set([]),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("elf_tohost"),model/riscv_platform.sail:9),[ocaml: "Elf_loader.elf_tohost",interpreter: "Elf_loader.elf_tohost",c: "elf_tohost"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:13)),model/riscv_platform.sail:13))],Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_platform.sail:13)),model/riscv_platform.sail:13),Effect_aux(Effect_set([]),model/riscv_platform.sail:13)),model/riscv_platform.sail:13)),model/riscv_platform.sail:13))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("elf_entry"),model/riscv_platform.sail:15),[ocaml: "Elf_loader.elf_entry",interpreter: "Elf_loader.elf_entry",c: "elf_entry"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:19)),model/riscv_platform.sail:19))],Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_platform.sail:19)),model/riscv_platform.sail:19),Effect_aux(Effect_set([]),model/riscv_platform.sail:19)),model/riscv_platform.sail:19)),model/riscv_platform.sail:19))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plat_ram_base"),model/riscv_platform.sail:22),[c: "plat_ram_base",ocaml: "Platform.dram_base",interpreter: "Platform.dram_base",lem: "plat_ram_base"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:22)),model/riscv_platform.sail:22))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_platform.sail:22)),model/riscv_platform.sail:22)),model/riscv_platform.sail:22))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plat_ram_size"),model/riscv_platform.sail:23),[c: "plat_ram_size",ocaml: "Platform.dram_size",interpreter: "Platform.dram_size",lem: "plat_ram_size"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:23)),model/riscv_platform.sail:23))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_platform.sail:23)),model/riscv_platform.sail:23)),model/riscv_platform.sail:23))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plat_enable_pmp"),model/riscv_platform.sail:26),[ocaml: "Platform.enable_pmp",interpreter: "Platform.enable_pmp",c: "plat_enable_pmp",lem: "plat_enable_pmp"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:29)),model/riscv_platform.sail:29))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:29)),model/riscv_platform.sail:29),Effect_aux(Effect_set([]),model/riscv_platform.sail:29)),model/riscv_platform.sail:29)),model/riscv_platform.sail:29))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plat_enable_dirty_update"),model/riscv_platform.sail:32),[ocaml: "Platform.enable_dirty_update",interpreter: "Platform.enable_dirty_update",c: "plat_enable_dirty_update",lem: "plat_enable_dirty_update"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:35)),model/riscv_platform.sail:35))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:35)),model/riscv_platform.sail:35),Effect_aux(Effect_set([]),model/riscv_platform.sail:35)),model/riscv_platform.sail:35)),model/riscv_platform.sail:35))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plat_enable_misaligned_access"),model/riscv_platform.sail:40),[ocaml: "Platform.enable_misaligned_access",interpreter: "Platform.enable_misaligned_access",c: "plat_enable_misaligned_access",lem: "plat_enable_misaligned_access"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:43)),model/riscv_platform.sail:43))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:43)),model/riscv_platform.sail:43),Effect_aux(Effect_set([]),model/riscv_platform.sail:43)),model/riscv_platform.sail:43)),model/riscv_platform.sail:43))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plat_mtval_has_illegal_inst_bits"),model/riscv_platform.sail:46),[ocaml: "Platform.mtval_has_illegal_inst_bits",interpreter: "Platform.mtval_has_illegal_inst_bits",c: "plat_mtval_has_illegal_inst_bits",lem: "plat_mtval_has_illegal_inst_bits"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:49)),model/riscv_platform.sail:49))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:49)),model/riscv_platform.sail:49),Effect_aux(Effect_set([]),model/riscv_platform.sail:49)),model/riscv_platform.sail:49)),model/riscv_platform.sail:49))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plat_rom_base"),model/riscv_platform.sail:52),[ocaml: "Platform.rom_base",interpreter: "Platform.rom_base",c: "plat_rom_base",lem: "plat_rom_base"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:52)),model/riscv_platform.sail:52))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_platform.sail:52)),model/riscv_platform.sail:52)),model/riscv_platform.sail:52))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plat_rom_size"),model/riscv_platform.sail:53),[ocaml: "Platform.rom_size",interpreter: "Platform.rom_size",c: "plat_rom_size",lem: "plat_rom_size"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:53)),model/riscv_platform.sail:53))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_platform.sail:53)),model/riscv_platform.sail:53)),model/riscv_platform.sail:53))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plat_clint_base"),model/riscv_platform.sail:56),[ocaml: "Platform.clint_base",interpreter: "Platform.clint_base",c: "plat_clint_base",lem: "plat_clint_base"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:56)),model/riscv_platform.sail:56))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_platform.sail:56)),model/riscv_platform.sail:56)),model/riscv_platform.sail:56))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plat_clint_size"),model/riscv_platform.sail:57),[ocaml: "Platform.clint_size",interpreter: "Platform.clint_size",c: "plat_clint_size",lem: "plat_clint_size"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:57)),model/riscv_platform.sail:57))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_platform.sail:57)),model/riscv_platform.sail:57)),model/riscv_platform.sail:57))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plat_htif_tohost"),model/riscv_platform.sail:60),[ocaml: "Platform.htif_tohost",c: "plat_htif_tohost",lem: "plat_htif_tohost"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:60)),model/riscv_platform.sail:60))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_platform.sail:60)),model/riscv_platform.sail:60)),model/riscv_platform.sail:60))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("plat_htif_tohost"),model/riscv_platform.sail:61),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_platform.sail:61)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("to_bits"),model/riscv_platform.sail:61),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("elf_tohost"),model/riscv_platform.sail:61),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:61)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_platform.sail:13)),model/riscv_platform.sail:13)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:60)),model/riscv_platform.sail:60))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_platform.sail:60)),model/riscv_platform.sail:60)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("phys_mem_segments"),model/riscv_platform.sail:64),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:64)),model/riscv_platform.sail:64))],Typ_aux(Typ_app(Id_aux(Id("list"),model/riscv_platform.sail:64),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_platform.sail:64)),model/riscv_platform.sail:64))]),model/riscv_platform.sail:64),Effect_aux(Effect_set([]),model/riscv_platform.sail:64)),model/riscv_platform.sail:64)),model/riscv_platform.sail:64))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("phys_mem_segments"),model/riscv_platform.sail:65),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_platform.sail:65)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_cons(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("plat_rom_base"),model/riscv_platform.sail:66),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:66)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("plat_rom_size"),model/riscv_platform.sail:66),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:66)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_platform.sail:64)),E_aux(E_cons(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("plat_ram_base"),model/riscv_platform.sail:67),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:67)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("plat_ram_size"),model/riscv_platform.sail:67),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:67)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_platform.sail:64)),E_aux(E_list([]),Typ_aux(Typ_app(Id_aux(Id("list"),model/riscv_platform.sail:64),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_platform.sail:64)),model/riscv_platform.sail:64))]),model/riscv_platform.sail:64))),Typ_aux(Typ_app(Id_aux(Id("list"),model/riscv_platform.sail:64),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_platform.sail:64)),model/riscv_platform.sail:64))]),model/riscv_platform.sail:64))),Typ_aux(Typ_app(Id_aux(Id("list"),model/riscv_platform.sail:64),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_platform.sail:64)),model/riscv_platform.sail:64))]),model/riscv_platform.sail:64))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:64)),model/riscv_platform.sail:64))],Typ_aux(Typ_app(Id_aux(Id("list"),model/riscv_platform.sail:64),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_platform.sail:64)),model/riscv_platform.sail:64))]),model/riscv_platform.sail:64),Effect_aux(Effect_set([]),model/riscv_platform.sail:64)),model/riscv_platform.sail:64)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("within_phys_mem"),model/riscv_platform.sail:72),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:72),Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),model/riscv_platform.sail:72));(QI_aux(QI_constraint(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),model/riscv_platform.sail:72))]),model/riscv_platform.sail:72),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:72),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),model/riscv_platform.sail:72))]),model/riscv_platform.sail:72))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:72),Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),model/riscv_platform.sail:72));(QI_aux(QI_constraint(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),model/riscv_platform.sail:72))]),model/riscv_platform.sail:72),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),model/riscv_platform.sail:72),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("within_phys_mem"),model/riscv_platform.sail:72),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72),P_aux(P_id(Id_aux(Id("addr"),model/riscv_platform.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:72),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),model/riscv_platform.sail:72))]),model/riscv_platform.sail:72),P_aux(P_id(Id_aux(Id("width"),model/riscv_platform.sail:72)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:72),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),model/riscv_platform.sail:72))]),model/riscv_platform.sail:72)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:72),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),model/riscv_platform.sail:72))]),model/riscv_platform.sail:72))]),model/riscv_platform.sail:72-98)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("addr_int"),model/riscv_platform.sail:77)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_platform.sail:77),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:77)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("ram_base_int"),model/riscv_platform.sail:78)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_ram_base_int"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_platform.sail:78),[(E_aux(E_app(Id_aux(Id("plat_ram_base"),model/riscv_platform.sail:78),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:78)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rom_base_int"),model/riscv_platform.sail:79)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rom_base_int"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_platform.sail:79),[(E_aux(E_app(Id_aux(Id("plat_rom_base"),model/riscv_platform.sail:79),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:79)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("ram_size_int"),model/riscv_platform.sail:80)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_ram_size_int"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_platform.sail:80),[(E_aux(E_app(Id_aux(Id("plat_ram_size"),model/riscv_platform.sail:80),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:80)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rom_size_int"),model/riscv_platform.sail:81)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rom_size_int"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_platform.sail:81),[(E_aux(E_app(Id_aux(Id("plat_rom_size"),model/riscv_platform.sail:81),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:81)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_id(Id_aux(Id("ram_base_int"),model/riscv_platform.sail:84)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_ram_base_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("addr_int"),model/riscv_platform.sail:84)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:38),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'_ram_base_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))]),../sail/lib/flow.sail:38)));(E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("add_atom"),../sail/lib/arith.sail:13),[(E_aux(E_id(Id_aux(Id("addr_int"),model/riscv_platform.sail:85)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:72)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9))]),../sail/lib/arith.sail:9)));(E_aux(E_app(Id_aux(Id("add_atom"),../sail/lib/arith.sail:13),[(E_aux(E_id(Id_aux(Id("ram_base_int"),model/riscv_platform.sail:85)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_ram_base_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("ram_size_int"),model/riscv_platform.sail:85)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_ram_size_int"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_ram_base_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_ram_size_int"),Unknown)),Unknown)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9))]),../sail/lib/arith.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:38),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),../sail/lib/arith.sail:9),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_ram_base_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_ram_size_int"),Unknown)),Unknown)),../sail/lib/arith.sail:9)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))]),../sail/lib/flow.sail:38)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:22),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'_ram_base_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown)),../sail/lib/flow.sail:22),NC_aux(NC_bounded_le(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),../sail/lib/arith.sail:9),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_ram_base_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_ram_size_int"),Unknown)),Unknown)),../sail/lib/arith.sail:9)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))]),../sail/lib/flow.sail:22)),E_aux(E_lit(L_aux(L_true,model/riscv_platform.sail:86)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_id(Id_aux(Id("rom_base_int"),model/riscv_platform.sail:87)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rom_base_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("addr_int"),model/riscv_platform.sail:87)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:38),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'_rom_base_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))]),../sail/lib/flow.sail:38)));(E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("add_atom"),../sail/lib/arith.sail:13),[(E_aux(E_id(Id_aux(Id("addr_int"),model/riscv_platform.sail:88)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:72)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9))]),../sail/lib/arith.sail:9)));(E_aux(E_app(Id_aux(Id("add_atom"),../sail/lib/arith.sail:13),[(E_aux(E_id(Id_aux(Id("rom_base_int"),model/riscv_platform.sail:88)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rom_base_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rom_size_int"),model/riscv_platform.sail:88)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rom_size_int"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_rom_base_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_rom_size_int"),Unknown)),Unknown)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9))]),../sail/lib/arith.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:38),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),../sail/lib/arith.sail:9),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_rom_base_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_rom_size_int"),Unknown)),Unknown)),../sail/lib/arith.sail:9)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))]),../sail/lib/flow.sail:38)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:22),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'_rom_base_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown)),../sail/lib/flow.sail:22),NC_aux(NC_bounded_le(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),../sail/lib/arith.sail:9),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_rom_base_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_rom_size_int"),Unknown)),Unknown)),../sail/lib/arith.sail:9)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))]),../sail/lib/flow.sail:22)),E_aux(E_lit(L_aux(L_true,model/riscv_platform.sail:89)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:91),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("within_phys_mem: "),model/riscv_platform.sail:91)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:91)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_lit(L_aux(L_string(" not within phys-mem:"),model/riscv_platform.sail:91)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)));(E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:92),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" plat_rom_base: "),model/riscv_platform.sail:92)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("plat_rom_base"),model/riscv_platform.sail:92),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:92)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)));(E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:93),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" plat_rom_size: "),model/riscv_platform.sail:93)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("plat_rom_size"),model/riscv_platform.sail:93),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:93)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)));(E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:94),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" plat_ram_base: "),model/riscv_platform.sail:94)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("plat_ram_base"),model/riscv_platform.sail:94),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:94)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)));(E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:95),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" plat_ram_size: "),model/riscv_platform.sail:95)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("plat_ram_size"),model/riscv_platform.sail:95),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:95)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)));(E_aux(E_lit(L_aux(L_false,model/riscv_platform.sail:96)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:72),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),model/riscv_platform.sail:72))]),model/riscv_platform.sail:72))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("within_clint"),model/riscv_platform.sail:100),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:100),Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:100),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100))]),model/riscv_platform.sail:100),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:100),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100))]),model/riscv_platform.sail:100))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:100),Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:100),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100))]),model/riscv_platform.sail:100),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("within_clint"),model/riscv_platform.sail:100),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100),P_aux(P_id(Id_aux(Id("addr"),model/riscv_platform.sail:100)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:100),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100))]),model/riscv_platform.sail:100),P_aux(P_id(Id_aux(Id("width"),model/riscv_platform.sail:100)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:100),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100))]),model/riscv_platform.sail:100)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:100),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100))]),model/riscv_platform.sail:100))]),model/riscv_platform.sail:100-110)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("addr_int"),model/riscv_platform.sail:105)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_platform.sail:105),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:105)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("clint_base_int"),model/riscv_platform.sail:106)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_clint_base_int"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_platform.sail:106),[(E_aux(E_app(Id_aux(Id("plat_clint_base"),model/riscv_platform.sail:106),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:106)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("clint_size_int"),model/riscv_platform.sail:107)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_clint_size_int"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_platform.sail:107),[(E_aux(E_app(Id_aux(Id("plat_clint_size"),model/riscv_platform.sail:107),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:107)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_id(Id_aux(Id("clint_base_int"),model/riscv_platform.sail:108)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_clint_base_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("addr_int"),model/riscv_platform.sail:108)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:38),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'_clint_base_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))]),../sail/lib/flow.sail:38)));(E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("add_atom"),../sail/lib/arith.sail:13),[(E_aux(E_id(Id_aux(Id("addr_int"),model/riscv_platform.sail:109)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:100)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9))]),../sail/lib/arith.sail:9)));(E_aux(E_app(Id_aux(Id("add_atom"),../sail/lib/arith.sail:13),[(E_aux(E_id(Id_aux(Id("clint_base_int"),model/riscv_platform.sail:109)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_clint_base_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("clint_size_int"),model/riscv_platform.sail:109)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_clint_size_int"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_clint_base_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_clint_size_int"),Unknown)),Unknown)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9))]),../sail/lib/arith.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:38),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),../sail/lib/arith.sail:9),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_clint_base_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_clint_size_int"),Unknown)),Unknown)),../sail/lib/arith.sail:9)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))]),../sail/lib/flow.sail:38)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:22),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'_clint_base_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown)),../sail/lib/flow.sail:22),NC_aux(NC_bounded_le(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_addr_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),../sail/lib/arith.sail:9),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'_clint_base_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_clint_size_int"),Unknown)),Unknown)),../sail/lib/arith.sail:9)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))]),../sail/lib/flow.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:100),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),model/riscv_platform.sail:100))]),model/riscv_platform.sail:100))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("within_htif_writable"),model/riscv_platform.sail:112),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:112),Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:112),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112))]),model/riscv_platform.sail:112),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:112),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112))]),model/riscv_platform.sail:112))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:112),Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:112),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112))]),model/riscv_platform.sail:112),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("within_htif_writable"),model/riscv_platform.sail:112),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112),P_aux(P_id(Id_aux(Id("addr"),model/riscv_platform.sail:112)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:112),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112))]),model/riscv_platform.sail:112),P_aux(P_id(Id_aux(Id("width"),model/riscv_platform.sail:112)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:112),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112))]),model/riscv_platform.sail:112)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:112),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112))]),model/riscv_platform.sail:112))]),model/riscv_platform.sail:112-113)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("plat_htif_tohost"),model/riscv_platform.sail:113),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:113)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("add_bits_int"),../sail/lib/vector_dec.sail:145),[(E_aux(E_app(Id_aux(Id("plat_htif_tohost"),model/riscv_platform.sail:113),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:113)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4288#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4288#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4285#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4290#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex4285#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4290#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:112),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)),model/riscv_platform.sail:112))]),model/riscv_platform.sail:112))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("within_htif_readable"),model/riscv_platform.sail:115),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:115),Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:115),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115))]),model/riscv_platform.sail:115),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:115),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115))]),model/riscv_platform.sail:115))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:115),Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:115),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115))]),model/riscv_platform.sail:115),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("within_htif_readable"),model/riscv_platform.sail:115),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115),P_aux(P_id(Id_aux(Id("addr"),model/riscv_platform.sail:115)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:115),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115))]),model/riscv_platform.sail:115),P_aux(P_id(Id_aux(Id("width"),model/riscv_platform.sail:115)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:115),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115))]),model/riscv_platform.sail:115)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:115),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115))]),model/riscv_platform.sail:115))]),model/riscv_platform.sail:115-116)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("plat_htif_tohost"),model/riscv_platform.sail:116),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:116)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("add_bits_int"),../sail/lib/vector_dec.sail:145),[(E_aux(E_app(Id_aux(Id("plat_htif_tohost"),model/riscv_platform.sail:116),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:116)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:116)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:116)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:116)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4316#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4316#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4313#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4318#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex4313#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4318#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:115),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)),model/riscv_platform.sail:115))]),model/riscv_platform.sail:115))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plat_insns_per_tick"),model/riscv_platform.sail:120),[ocaml: "Platform.insns_per_tick",interpreter: "Platform.insns_per_tick",c: "plat_insns_per_tick",lem: "plat_insns_per_tick"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:120)),model/riscv_platform.sail:120))],Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_platform.sail:120)),model/riscv_platform.sail:120),Effect_aux(Effect_set([]),model/riscv_platform.sail:120)),model/riscv_platform.sail:120)),model/riscv_platform.sail:120))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:123))]),model/riscv_platform.sail:123),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_platform.sail:123))]),model/riscv_platform.sail:123),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_platform.sail:123),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),model/riscv_platform.sail:123))]),model/riscv_platform.sail:123),Id_aux(Id("mtimecmp"),model/riscv_platform.sail:123)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_val(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:139)),model/riscv_platform.sail:139),P_aux(P_id(Id_aux(Id("MSIP_BASE"),model/riscv_platform.sail:139)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_platform.sail:139),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_hex("00000"),model/riscv_platform.sail:139)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:140)),model/riscv_platform.sail:140),P_aux(P_id(Id_aux(Id("MTIMECMP_BASE"),model/riscv_platform.sail:140)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_platform.sail:140),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_hex("04000"),model/riscv_platform.sail:140)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:141)),model/riscv_platform.sail:141),P_aux(P_id(Id_aux(Id("MTIMECMP_BASE_HI"),model/riscv_platform.sail:141)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_platform.sail:141),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_hex("04004"),model/riscv_platform.sail:141)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:142)),model/riscv_platform.sail:142),P_aux(P_id(Id_aux(Id("MTIME_BASE"),model/riscv_platform.sail:142)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_platform.sail:142),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_hex("0bff8"),model/riscv_platform.sail:142)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:143)),model/riscv_platform.sail:143),P_aux(P_id(Id_aux(Id("MTIME_BASE_HI"),model/riscv_platform.sail:143)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_platform.sail:143),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_hex("0bffc"),model/riscv_platform.sail:143)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("clint_load"),model/riscv_platform.sail:145),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:145),Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145));(QI_aux(QI_constraint(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:145),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:145))]),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("clint_load"),model/riscv_platform.sail:146),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("addr"),model/riscv_platform.sail:146)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_platform.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),Unknown))]),Unknown))]),model/riscv_platform.sail:146-199)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("addr"),model/riscv_platform.sail:147)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("sub_vec"),model/prelude.sail:75),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:147)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("plat_clint_base"),model/riscv_platform.sail:147),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:147)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:149)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("MSIP_BASE"),model/riscv_platform.sail:149)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_platform.sail:149)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:149)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:26),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26))]),../sail/lib/flow.sail:26)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4385#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4385#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:151),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:151)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:152),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("clint["),model/riscv_platform.sail:152)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:152)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] -> "),model/riscv_platform.sail:152)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_MSI"),:1),[(E_aux(E_id(Id_aux(Id("mip"),model/riscv_platform.sail:152)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:152)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_platform.sail:153),[(E_aux(E_app(Id_aux(Id("sail_zero_extend"),model/riscv_platform.sail:153),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_MSI"),:1),[(E_aux(E_id(Id_aux(Id("mip"),model/riscv_platform.sail:153)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("mult_atom"),Unknown),[(E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:41),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41))]),../sail/lib/arith.sail:41)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("MTIMECMP_BASE"),model/riscv_platform.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:155)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4391#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4391#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:157),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:157)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:158),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("clint<4>["),model/riscv_platform.sail:158)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:158)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] -> "),model/riscv_platform.sail:158)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("mtimecmp"),model/riscv_platform.sail:158)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_platform.sail:158)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_platform.sail:158)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:158)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_platform.sail:160),[(E_aux(E_app(Id_aux(Id("sail_zero_extend"),model/riscv_platform.sail:160),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("mtimecmp"),model/riscv_platform.sail:160)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_platform.sail:160)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_platform.sail:160)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_platform.sail:160)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:162)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("MTIMECMP_BASE"),model/riscv_platform.sail:162)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_platform.sail:162)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4399#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4399#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:164),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:164)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:165),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("clint<8>["),model/riscv_platform.sail:165)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] -> "),model/riscv_platform.sail:165)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("mtimecmp"),model/riscv_platform.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:165)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_platform.sail:167),[(E_aux(E_app(Id_aux(Id("sail_zero_extend"),model/riscv_platform.sail:167),[(E_aux(E_id(Id_aux(Id("mtimecmp"),model/riscv_platform.sail:167)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_platform.sail:167)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:169)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("MTIMECMP_BASE_HI"),model/riscv_platform.sail:169)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:169)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4407#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4407#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:171),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:171)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:172),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("clint-hi<4>["),model/riscv_platform.sail:172)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:172)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] -> "),model/riscv_platform.sail:172)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("mtimecmp"),model/riscv_platform.sail:172)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(63),model/riscv_platform.sail:172)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_platform.sail:172)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:172)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_platform.sail:174),[(E_aux(E_app(Id_aux(Id("sail_zero_extend"),model/riscv_platform.sail:174),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("mtimecmp"),model/riscv_platform.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(63),model/riscv_platform.sail:174)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_platform.sail:174)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_platform.sail:174)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:176)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("MTIME_BASE"),model/riscv_platform.sail:176)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:176)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4415#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4415#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:178),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:178)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:179),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("clint["),model/riscv_platform.sail:179)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:179)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] -> "),model/riscv_platform.sail:179)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("mtime"),model/riscv_platform.sail:179)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:179)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_platform.sail:180),[(E_aux(E_app(Id_aux(Id("sail_zero_extend"),model/riscv_platform.sail:180),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("mtime"),model/riscv_platform.sail:180)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_platform.sail:180)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_platform.sail:180)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_platform.sail:180)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:182)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("MTIME_BASE"),model/riscv_platform.sail:182)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_platform.sail:182)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4423#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4423#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:184),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:184)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:185),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("clint["),model/riscv_platform.sail:185)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:185)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] -> "),model/riscv_platform.sail:185)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("mtime"),model/riscv_platform.sail:185)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:185)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_platform.sail:186),[(E_aux(E_app(Id_aux(Id("sail_zero_extend"),model/riscv_platform.sail:186),[(E_aux(E_id(Id_aux(Id("mtime"),model/riscv_platform.sail:186)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_platform.sail:186)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:188)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("MTIME_BASE_HI"),model/riscv_platform.sail:188)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:188)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4431#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4431#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:190),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:190)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:191),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("clint["),model/riscv_platform.sail:191)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:191)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] -> "),model/riscv_platform.sail:191)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("mtime"),model/riscv_platform.sail:191)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:191)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_platform.sail:192),[(E_aux(E_app(Id_aux(Id("sail_zero_extend"),model/riscv_platform.sail:192),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("mtime"),model/riscv_platform.sail:192)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(63),model/riscv_platform.sail:192)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_platform.sail:192)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_platform.sail:192)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:195),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:195)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:196),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("clint["),model/riscv_platform.sail:196)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:196)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_lit(L_aux(L_string("] -> <not-mapped>"),model/riscv_platform.sail:196)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:196)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("MemException"),model/riscv_platform.sail:197),[(E_aux(E_app(Id_aux(Id("E_Load_Access_Fault"),model/riscv_platform.sail:197),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:197)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:145))]),model/riscv_platform.sail:145)),model/riscv_platform.sail:145)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("clint_dispatch"),model/riscv_platform.sail:201),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:201)),model/riscv_platform.sail:201),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:391));(BE_aux(BE_wreg,:1))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:201)),model/riscv_platform.sail:201)),model/riscv_platform.sail:201),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("clint_dispatch"),model/riscv_platform.sail:201),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_platform.sail:201)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:202),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:202)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:203),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("clint::tick mtime <- "),model/riscv_platform.sail:203)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("mtime"),model/riscv_platform.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:203)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("_set_Minterrupts_MTI"),:1),[(E_aux(E_ref(Id_aux(Id("mip"),model/riscv_platform.sail:204)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_platform.sail:204)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_if(E_aux(E_app(Id_aux(Operator("<=_u"),model/riscv_platform.sail:205),[(E_aux(E_id(Id_aux(Id("mtimecmp"),model/riscv_platform.sail:205)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("mtime"),model/riscv_platform.sail:205)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:151)),model/prelude.sail:151)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:206),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:206)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:207),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" clint timer pending at mtime "),model/riscv_platform.sail:207)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("mtime"),model/riscv_platform.sail:207)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:207)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("_set_Minterrupts_MTI"),:1),[(E_aux(E_ref(Id_aux(Id("mip"),model/riscv_platform.sail:208)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_platform.sail:208)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:201)),model/riscv_platform.sail:201)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:209)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:201)),model/riscv_platform.sail:201)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:201)),model/riscv_platform.sail:201))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:201)),model/riscv_platform.sail:201),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("clint_store"),model/riscv_platform.sail:213),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:213),Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213));(QI_aux(QI_constraint(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213),Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:213),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:213),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:213),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:213));(BE_aux(BE_wreg,model/riscv_platform.sail:213))]),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("clint_store"),model/riscv_platform.sail:214),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("addr"),model/riscv_platform.sail:214)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_platform.sail:214)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("data"),model/riscv_platform.sail:214)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:213),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:213),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_platform.sail:214-245)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("addr"),model/riscv_platform.sail:215)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("sub_vec"),model/prelude.sail:75),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:215)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("plat_clint_base"),model/riscv_platform.sail:215),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:215)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:216)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("MSIP_BASE"),model/riscv_platform.sail:216)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:214)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_platform.sail:216)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:214)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:216)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:26),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26))]),../sail/lib/flow.sail:26)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4451#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4451#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:217),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:217)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:218),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("clint["),model/riscv_platform.sail:218)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:218)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] <- "),model/riscv_platform.sail:218)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:218)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:213),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" (mip.MSI <- "),model/riscv_platform.sail:218)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bit"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:218)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:213),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_platform.sail:218)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:57)),model/prelude.sail:57)));(E_aux(E_lit(L_aux(L_string(")"),model/riscv_platform.sail:218)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:218)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("_set_Minterrupts_MSI"),:1),[(E_aux(E_ref(Id_aux(Id("mip"),model/riscv_platform.sail:219)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)),Unknown))]),Unknown)));(E_aux(E_vector([(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:219)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:213),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_platform.sail:219)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("clint_dispatch"),model/riscv_platform.sail:220),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:220)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:201)),model/riscv_platform.sail:201)));(E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_platform.sail:221),[(E_aux(E_lit(L_aux(L_true,model/riscv_platform.sail:221)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:213),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:222)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("MTIMECMP_BASE"),model/riscv_platform.sail:222)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:214)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_platform.sail:222)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4457#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4457#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:223),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:223)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:224),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("clint<8>["),model/riscv_platform.sail:224)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:224)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] <- "),model/riscv_platform.sail:224)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:224)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:213),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_lit(L_aux(L_string(" (mtimecmp)"),model/riscv_platform.sail:224)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:224)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mtimecmp"),model/riscv_platform.sail:225)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("sail_zero_extend"),model/riscv_platform.sail:225),[(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:225)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:213),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_platform.sail:225)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("clint_dispatch"),model/riscv_platform.sail:226),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:226)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:201)),model/riscv_platform.sail:201)));(E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_platform.sail:227),[(E_aux(E_lit(L_aux(L_true,model/riscv_platform.sail:227)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:213),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:228)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("MTIMECMP_BASE"),model/riscv_platform.sail:228)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:214)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:228)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4467#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4467#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:229),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:229)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:230),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("clint<4>["),model/riscv_platform.sail:230)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:230)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] <- "),model/riscv_platform.sail:230)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:230)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:213),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_lit(L_aux(L_string(" (mtimecmp)"),model/riscv_platform.sail:230)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:230)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mtimecmp"),model/riscv_platform.sail:231)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),model/riscv_platform.sail:231),[(E_aux(E_id(Id_aux(Id("mtimecmp"),model/riscv_platform.sail:231)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_platform.sail:231)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_platform.sail:231)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("sail_zero_extend"),model/riscv_platform.sail:231),[(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:231)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:213),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_platform.sail:231)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("clint_dispatch"),model/riscv_platform.sail:232),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:232)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:201)),model/riscv_platform.sail:201)));(E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_platform.sail:233),[(E_aux(E_lit(L_aux(L_true,model/riscv_platform.sail:233)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:213),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:234)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("MTIMECMP_BASE_HI"),model/riscv_platform.sail:234)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:214)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:234)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4478#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4478#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:235),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:235)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:236),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("clint<4>["),model/riscv_platform.sail:236)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:236)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] <- "),model/riscv_platform.sail:236)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:236)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:213),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_lit(L_aux(L_string(" (mtimecmp)"),model/riscv_platform.sail:236)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:236)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mtimecmp"),model/riscv_platform.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),model/riscv_platform.sail:237),[(E_aux(E_id(Id_aux(Id("mtimecmp"),model/riscv_platform.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(63),model/riscv_platform.sail:237)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_platform.sail:237)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("sail_zero_extend"),model/riscv_platform.sail:237),[(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:213),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_platform.sail:237)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(32),Unknown),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:191)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("clint_dispatch"),model/riscv_platform.sail:238),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:238)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:201)),model/riscv_platform.sail:201)));(E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_platform.sail:239),[(E_aux(E_lit(L_aux(L_true,model/riscv_platform.sail:239)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:213),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:241),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:241)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:242),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("clint["),model/riscv_platform.sail:242)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:242)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] <- "),model/riscv_platform.sail:242)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:242)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:213),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_lit(L_aux(L_string(" (<unmapped>)"),model/riscv_platform.sail:242)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:242)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("MemException"),model/riscv_platform.sail:243),[(E_aux(E_app(Id_aux(Id("E_SAMO_Access_Fault"),model/riscv_platform.sail:243),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:243)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:213),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:213),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:213),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:213),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:213),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:213),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:213),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:213),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:213),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:213),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:213));(BE_aux(BE_wreg,model/riscv_platform.sail:213))]),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("tick_clock"),model/riscv_platform.sail:247),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:247)),model/riscv_platform.sail:247))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:247)),model/riscv_platform.sail:247),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:247));(BE_aux(BE_wreg,model/riscv_platform.sail:247))]),model/riscv_platform.sail:247)),model/riscv_platform.sail:247)),model/riscv_platform.sail:247))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("tick_clock"),model/riscv_platform.sail:248),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_platform.sail:248)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mcycle"),model/riscv_platform.sail:249)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("add_bits_int"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("mcycle"),model/riscv_platform.sail:249)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_platform.sail:249)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mtime"),model/riscv_platform.sail:250)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("add_bits_int"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("mtime"),model/riscv_platform.sail:250)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_platform.sail:250)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("clint_dispatch"),model/riscv_platform.sail:251),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:251)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:201)),model/riscv_platform.sail:201)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:247)),model/riscv_platform.sail:247))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:247)),model/riscv_platform.sail:247))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:247)),model/riscv_platform.sail:247),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:247));(BE_aux(BE_wreg,model/riscv_platform.sail:247))]),model/riscv_platform.sail:247)),model/riscv_platform.sail:247)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plat_term_write"),model/riscv_platform.sail:256),[ocaml: "Platform.term_write",c: "plat_term_write",lem: "plat_term_write"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:256)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:256)),model/riscv_platform.sail:256),Effect_aux(Effect_set([]),model/riscv_platform.sail:256)),model/riscv_platform.sail:256)),model/riscv_platform.sail:256))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("plat_term_read"),model/riscv_platform.sail:257),[ocaml: "Platform.term_read",c: "plat_term_read",lem: "plat_term_read"],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:257)),model/riscv_platform.sail:257))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:257)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),model/riscv_platform.sail:257)),model/riscv_platform.sail:257)),model/riscv_platform.sail:257))));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_htif_cmd"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_htif_cmd"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("htif_cmd_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_htif_cmd"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_htif_cmd"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("htif_cmd_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_htif_cmd_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_htif_cmd_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),Id_aux(Id("htif_cmd_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_htif_cmd_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_htif_cmd_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("htif_cmd_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("htif_cmd_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_htif_cmd_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_htif_cmd_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("htif_cmd_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),Id_aux(Id("htif_cmd_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_htif_cmd_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_htif_cmd_bits"),:1));(Id_aux(Id("_set_htif_cmd_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_htif_cmd_device"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_htif_cmd_device"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),Id_aux(Id("htif_cmd_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(56),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(56),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_htif_cmd_device"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_htif_cmd_device"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("htif_cmd_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("htif_cmd_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(56),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_htif_cmd_device"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_htif_cmd_device"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("htif_cmd_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),Id_aux(Id("htif_cmd_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(56),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_device"),:1),[(Id_aux(Id("_update_htif_cmd_device"),:1))]));(DEF_overload(Id_aux(Id("_mod_device"),:1),[(Id_aux(Id("_get_htif_cmd_device"),:1));(Id_aux(Id("_set_htif_cmd_device"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_htif_cmd_cmd"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_htif_cmd_cmd"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),Id_aux(Id("htif_cmd_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(55),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(48),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(55),Unknown),Nexp_aux(Nexp_constant(48),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_htif_cmd_cmd"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_htif_cmd_cmd"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("htif_cmd_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("htif_cmd_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(55),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(48),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_htif_cmd_cmd"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_htif_cmd_cmd"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("htif_cmd_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),Id_aux(Id("htif_cmd_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(55),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(48),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_cmd"),:1),[(Id_aux(Id("_update_htif_cmd_cmd"),:1))]));(DEF_overload(Id_aux(Id("_mod_cmd"),:1),[(Id_aux(Id("_get_htif_cmd_cmd"),:1));(Id_aux(Id("_set_htif_cmd_cmd"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_htif_cmd_payload"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_htif_cmd_payload"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),Id_aux(Id("htif_cmd_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(47),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(47),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(47),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_htif_cmd_payload"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_htif_cmd_payload"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("htif_cmd_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("htif_cmd_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(47),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(47),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(47),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(47),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(47),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_htif_cmd_payload"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_htif_cmd_payload"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("htif_cmd_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),Id_aux(Id("htif_cmd_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(47),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(47),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(47),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(47),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(47),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_payload"),:1),[(Id_aux(Id("_update_htif_cmd_payload"),:1))]));(DEF_overload(Id_aux(Id("_mod_payload"),:1),[(Id_aux(Id("_get_htif_cmd_payload"),:1));(Id_aux(Id("_set_htif_cmd_payload"),:1))]));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:267))]),model/riscv_platform.sail:267),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_platform.sail:267))]),model/riscv_platform.sail:267),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_platform.sail:267),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),model/riscv_platform.sail:267))]),model/riscv_platform.sail:267),Id_aux(Id("htif_tohost"),model/riscv_platform.sail:267)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:268))]),model/riscv_platform.sail:268),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_platform.sail:268))]),model/riscv_platform.sail:268),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:268)),model/riscv_platform.sail:268),Id_aux(Id("htif_done"),model/riscv_platform.sail:268)),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:268)),model/riscv_platform.sail:268))));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:269))]),model/riscv_platform.sail:269),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_platform.sail:269))]),model/riscv_platform.sail:269),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_platform.sail:269),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:269)),model/riscv_platform.sail:269))]),model/riscv_platform.sail:269),Id_aux(Id("htif_exit_code"),model/riscv_platform.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("htif_load"),model/riscv_platform.sail:277),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:277),Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277));(QI_aux(QI_constraint(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277),Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277))]),model/riscv_platform.sail:277),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:277),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277))]),model/riscv_platform.sail:277))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:277),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:277),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:277))]),model/riscv_platform.sail:277),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:277))]),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("htif_load"),model/riscv_platform.sail:278),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("paddr"),model/riscv_platform.sail:278)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_platform.sail:278)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),Unknown))]),Unknown))]),model/riscv_platform.sail:278-289)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:279),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:279)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:280),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("htif["),model/riscv_platform.sail:280)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_platform.sail:280)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] -> "),model/riscv_platform.sail:280)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("htif_tohost"),model/riscv_platform.sail:280)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:280)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:282)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_platform.sail:282)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_platform.sail:282)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("plat_htif_tohost"),model/riscv_platform.sail:282),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:282)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4533#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4533#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_platform.sail:283),[(E_aux(E_app(Id_aux(Id("sail_zero_extend"),model/riscv_platform.sail:283),[(E_aux(E_id(Id_aux(Id("htif_tohost"),model/riscv_platform.sail:283)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_platform.sail:283)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:277),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:277),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:284)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:284)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_platform.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("plat_htif_tohost"),model/riscv_platform.sail:284),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:284)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4539#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4539#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_platform.sail:285),[(E_aux(E_app(Id_aux(Id("sail_zero_extend"),model/riscv_platform.sail:285),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("htif_tohost"),model/riscv_platform.sail:285)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_platform.sail:285)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_platform.sail:285)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_platform.sail:285)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:277),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:277),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:286)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:286)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_platform.sail:286)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("add_bits_int"),../sail/lib/vector_dec.sail:145),[(E_aux(E_app(Id_aux(Id("plat_htif_tohost"),model/riscv_platform.sail:286),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:286)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:286)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4545#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4545#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_platform.sail:287),[(E_aux(E_app(Id_aux(Id("sail_zero_extend"),model/riscv_platform.sail:287),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("htif_tohost"),model/riscv_platform.sail:287)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(63),model/riscv_platform.sail:287)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_platform.sail:287)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_platform.sail:287)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:277),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:277),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_platform.sail:288),[(E_aux(E_app(Id_aux(Id("E_Load_Access_Fault"),model/riscv_platform.sail:288),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:288)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:277),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:277),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:277),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:277))]),model/riscv_platform.sail:277))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:277),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:277),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:277))]),model/riscv_platform.sail:277))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:277),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:277),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:277))]),model/riscv_platform.sail:277)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:277),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:277),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:277))]),model/riscv_platform.sail:277))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:277),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:277),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:277))]),model/riscv_platform.sail:277),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:277))]),model/riscv_platform.sail:277)),model/riscv_platform.sail:277)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("htif_store"),model/riscv_platform.sail:292),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:292),Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:292),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292),Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292))]),model/riscv_platform.sail:292),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:292),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292))]),model/riscv_platform.sail:292));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:292),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:292),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292))]),model/riscv_platform.sail:292),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:292));(BE_aux(BE_wreg,model/riscv_platform.sail:292))]),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("htif_store"),model/riscv_platform.sail:293),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("paddr"),model/riscv_platform.sail:293)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_platform.sail:293)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("data"),model/riscv_platform.sail:293)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:292),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:292),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_platform.sail:293-330)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:294),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:294)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:295),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("htif["),model/riscv_platform.sail:295)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_platform.sail:295)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] <- "),model/riscv_platform.sail:295)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:295)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:292),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:295)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:297)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_platform.sail:297)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("htif_tohost"),model/riscv_platform.sail:298)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_platform.sail:298),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:298)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:292),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:299)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:299)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_platform.sail:299)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("plat_htif_tohost"),model/riscv_platform.sail:299),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:299)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4560#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4560#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("htif_tohost"),model/riscv_platform.sail:300)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),model/riscv_platform.sail:300),[(E_aux(E_id(Id_aux(Id("htif_tohost"),model/riscv_platform.sail:300)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_platform.sail:300)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_platform.sail:300)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:300)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:292),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:301)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:301)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_platform.sail:301)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("add_bits_int"),../sail/lib/vector_dec.sail:145),[(E_aux(E_app(Id_aux(Id("plat_htif_tohost"),model/riscv_platform.sail:301),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:301)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_platform.sail:301)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4570#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4570#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("htif_tohost"),model/riscv_platform.sail:302)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),model/riscv_platform.sail:302),[(E_aux(E_id(Id_aux(Id("htif_tohost"),model/riscv_platform.sail:302)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(63),model/riscv_platform.sail:302)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_platform.sail:302)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:302)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:292),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("htif_tohost"),model/riscv_platform.sail:303)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_platform.sail:303),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:303)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:292),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("cmd"),model/riscv_platform.sail:306)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_htif_cmd"),model/riscv_platform.sail:306),[(E_aux(E_id(Id_aux(Id("htif_tohost"),model/riscv_platform.sail:306)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("_get_htif_cmd_device"),:1),[(E_aux(E_id(Id_aux(Id("cmd"),model/riscv_platform.sail:307)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("00"),model/riscv_platform.sail:308)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:309),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:309)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:310),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("htif-syscall-proxy cmd: "),model/riscv_platform.sail:310)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("_get_htif_cmd_payload"),:1),[(E_aux(E_id(Id_aux(Id("cmd"),model/riscv_platform.sail:310)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:310)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bit"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_app(Id_aux(Id("_get_htif_cmd_payload"),:1),[(E_aux(E_id(Id_aux(Id("cmd"),model/riscv_platform.sail:311)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_platform.sail:311)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)));(E_aux(E_lit(L_aux(L_one,model/riscv_platform.sail:311)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("htif_done"),model/riscv_platform.sail:313)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_true,model/riscv_platform.sail:313)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("htif_exit_code"),model/riscv_platform.sail:314)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("shiftr"),model/prelude.sail:168),[(E_aux(E_app(Id_aux(Id("sail_zero_extend"),model/riscv_platform.sail:314),[(E_aux(E_app(Id_aux(Id("_get_htif_cmd_payload"),:1),[(E_aux(E_id(Id_aux(Id("cmd"),model/riscv_platform.sail:314)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_platform.sail:314)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_platform.sail:314)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:316)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("01"),model/riscv_platform.sail:318)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:319),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:319)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:320),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("htif-term cmd: "),model/riscv_platform.sail:320)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_app(Id_aux(Id("_get_htif_cmd_payload"),:1),[(E_aux(E_id(Id_aux(Id("cmd"),model/riscv_platform.sail:320)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:320)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_case(E_aux(E_app(Id_aux(Id("_get_htif_cmd_cmd"),:1),[(E_aux(E_id(Id_aux(Id("cmd"),model/riscv_platform.sail:321)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),[(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("00"),model/riscv_platform.sail:322)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:322)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_hex("01"),model/riscv_platform.sail:323)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("plat_term_write"),model/riscv_platform.sail:323),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("_get_htif_cmd_payload"),:1),[(E_aux(E_id(Id_aux(Id("cmd"),model/riscv_platform.sail:323)),Typ_aux(Typ_id(Id_aux(Id("htif_cmd"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),model/riscv_platform.sail:323)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_platform.sail:323)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:256)),model/riscv_platform.sail:256))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("c"),model/riscv_platform.sail:324)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_app(Id_aux(Id("print"),model/riscv_platform.sail:324),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("Unknown term cmd: "),model/riscv_platform.sail:324)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("c"),model/riscv_platform.sail:324)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:97)),model/prelude.sail:97))),None))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("d"),model/riscv_platform.sail:327)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_app(Id_aux(Id("print"),model/riscv_platform.sail:327),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("htif-???? cmd: "),model/riscv_platform.sail:327)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:327)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:292),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:97)),model/prelude.sail:97))),None))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_platform.sail:329),[(E_aux(E_lit(L_aux(L_true,model/riscv_platform.sail:329)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:292)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:292),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292))]),model/riscv_platform.sail:292))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:292),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292))]),model/riscv_platform.sail:292)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:292),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292))]),model/riscv_platform.sail:292))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:292),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:292),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292))]),model/riscv_platform.sail:292),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:292));(BE_aux(BE_wreg,model/riscv_platform.sail:292))]),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("htif_tick"),model/riscv_platform.sail:332),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:332)),model/riscv_platform.sail:332))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:332)),model/riscv_platform.sail:332),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:332));(BE_aux(BE_wreg,model/riscv_platform.sail:332))]),model/riscv_platform.sail:332)),model/riscv_platform.sail:332)),model/riscv_platform.sail:332))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("htif_tick"),model/riscv_platform.sail:333),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_platform.sail:333)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_platform"),model/riscv_platform.sail:334),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:334)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:109)),model/prelude.sail:109)),E_aux(E_app(Id_aux(Id("print_platform"),model/riscv_platform.sail:335),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("htif::tick "),model/riscv_platform.sail:335)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("htif_tohost"),model/riscv_platform.sail:335)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:103)),model/prelude.sail:103)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:335)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("htif_tohost"),model/riscv_platform.sail:336)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_platform.sail:336),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_platform.sail:336)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:332)),model/riscv_platform.sail:332))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:332)),model/riscv_platform.sail:332))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:332)),model/riscv_platform.sail:332),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:332));(BE_aux(BE_wreg,model/riscv_platform.sail:332))]),model/riscv_platform.sail:332)),model/riscv_platform.sail:332)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("within_mmio_readable"),model/riscv_platform.sail:341),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:341),Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:341),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341))]),model/riscv_platform.sail:341),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:341),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341))]),model/riscv_platform.sail:341))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:341),Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:341),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341))]),model/riscv_platform.sail:341),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("within_mmio_readable"),model/riscv_platform.sail:341),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341),P_aux(P_id(Id_aux(Id("addr"),model/riscv_platform.sail:341)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:341),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341))]),model/riscv_platform.sail:341),P_aux(P_id(Id_aux(Id("width"),model/riscv_platform.sail:341)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:341),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341))]),model/riscv_platform.sail:341)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:341),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341))]),model/riscv_platform.sail:341))]),model/riscv_platform.sail:341-342)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("within_clint"),model/riscv_platform.sail:342),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:342)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:342)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("within_htif_readable"),model/riscv_platform.sail:342),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:342)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:342)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)));(E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_lit(L_aux(L_num(1),model/riscv_platform.sail:342)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:341)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:38),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))]),../sail/lib/flow.sail:38)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4615#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4615#"),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4612#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4617#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex4612#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4617#"),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:341),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),model/riscv_platform.sail:341))]),model/riscv_platform.sail:341))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("within_mmio_writable"),model/riscv_platform.sail:348),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:348),Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:348),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348))]),model/riscv_platform.sail:348),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:348),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348))]),model/riscv_platform.sail:348))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:348),Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:348),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348))]),model/riscv_platform.sail:348),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("within_mmio_writable"),model/riscv_platform.sail:348),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348),P_aux(P_id(Id_aux(Id("addr"),model/riscv_platform.sail:348)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:348),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348))]),model/riscv_platform.sail:348),P_aux(P_id(Id_aux(Id("width"),model/riscv_platform.sail:348)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:348),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348))]),model/riscv_platform.sail:348)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:348),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348))]),model/riscv_platform.sail:348))]),model/riscv_platform.sail:348-349)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("within_clint"),model/riscv_platform.sail:349),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:349)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:349)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("within_htif_writable"),model/riscv_platform.sail:349),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_platform.sail:349)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:349)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)));(E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:348)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_platform.sail:349)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:38),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))]),../sail/lib/flow.sail:38)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4643#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4643#"),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4640#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4645#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex4640#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4645#"),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:348),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),model/riscv_platform.sail:348))]),model/riscv_platform.sail:348))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("mmio_read"),model/riscv_platform.sail:354),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:354),Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:354),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:354),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:354),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_platform.sail:354),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:354),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354)),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:145))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:354),Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:354),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:354),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_platform.sail:354),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:354),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354)),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354)),model/riscv_platform.sail:354),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("mmio_read"),model/riscv_platform.sail:354),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354),P_aux(P_id(Id_aux(Id("paddr"),model/riscv_platform.sail:354)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:354),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354),P_aux(P_id(Id_aux(Id("width"),model/riscv_platform.sail:354)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:354),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:354),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354-359)),E_aux(E_if(E_aux(E_app(Id_aux(Id("within_clint"),model/riscv_platform.sail:355),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_platform.sail:355)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:355)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),E_aux(E_app(Id_aux(Id("clint_load"),model/riscv_platform.sail:356),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_platform.sail:356)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:356)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:145),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:145),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:145)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:145))]),model/riscv_platform.sail:145)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("within_htif_readable"),model/riscv_platform.sail:357),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_platform.sail:357)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:357)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:115)),model/riscv_platform.sail:115)));(E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_lit(L_aux(L_num(1),model/riscv_platform.sail:357)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:354)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:38),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))]),../sail/lib/flow.sail:38)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4672#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4672#"),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("htif_load"),model/riscv_platform.sail:358),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_platform.sail:358)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:358)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:277),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:277),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:277)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:277))]),model/riscv_platform.sail:277)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_platform.sail:359),[(E_aux(E_app(Id_aux(Id("E_Load_Access_Fault"),model/riscv_platform.sail:359),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:359)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:354),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:354),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:354),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:354),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:354),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:354),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:354),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:354),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),model/riscv_platform.sail:354)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("mmio_write"),model/riscv_platform.sail:361),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:361),Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:361),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361))]),model/riscv_platform.sail:361),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:361),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361))]),model/riscv_platform.sail:361));(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_platform.sail:361),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:361),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361))]),model/riscv_platform.sail:361))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:361),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361))]),model/riscv_platform.sail:361),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:213));(BE_aux(BE_wreg,model/riscv_platform.sail:213))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_platform.sail:361),Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_platform.sail:361),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361))]),model/riscv_platform.sail:361),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:361),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361))]),model/riscv_platform.sail:361)),model/riscv_platform.sail:361),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("mmio_write"),model/riscv_platform.sail:361),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361),P_aux(P_id(Id_aux(Id("paddr"),model/riscv_platform.sail:361)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:361),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361))]),model/riscv_platform.sail:361),P_aux(P_id(Id_aux(Id("width"),model/riscv_platform.sail:361)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:361),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361))]),model/riscv_platform.sail:361)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_platform.sail:361),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:361),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361))]),model/riscv_platform.sail:361),P_aux(P_id(Id_aux(Id("data"),model/riscv_platform.sail:361)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:361),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:361),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:361),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361))]),model/riscv_platform.sail:361));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:361),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_platform.sail:361-366)),E_aux(E_if(E_aux(E_app(Id_aux(Id("within_clint"),model/riscv_platform.sail:362),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_platform.sail:362)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:362)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:100)),model/riscv_platform.sail:100)),E_aux(E_app(Id_aux(Id("clint_store"),model/riscv_platform.sail:363),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_platform.sail:363)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:363)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:363)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:361),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:213),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:213)),model/riscv_platform.sail:213)),model/riscv_platform.sail:213))]),model/riscv_platform.sail:213)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("within_htif_writable"),model/riscv_platform.sail:364),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_platform.sail:364)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:364)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:112)),model/riscv_platform.sail:112)));(E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("__id"),../sail/lib/flow.sail:62),[(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:361)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/flow.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),../sail/lib/flow.sail:60))]),../sail/lib/flow.sail:60)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_platform.sail:364)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:38),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:38)),../sail/lib/flow.sail:38))]),../sail/lib/flow.sail:38)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4712#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex4712#"),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("htif_store"),model/riscv_platform.sail:365),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_platform.sail:365)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_platform.sail:365)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("data"),model/riscv_platform.sail:365)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:361),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:292),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:292)),model/riscv_platform.sail:292)),model/riscv_platform.sail:292))]),model/riscv_platform.sail:292)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_platform.sail:366),[(E_aux(E_app(Id_aux(Id("E_SAMO_Access_Fault"),model/riscv_platform.sail:366),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:366)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:361)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:361),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361))]),model/riscv_platform.sail:361))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:361),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361))]),model/riscv_platform.sail:361))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_platform.sail:361),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361))]),model/riscv_platform.sail:361));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:361),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:361),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361))]),model/riscv_platform.sail:361),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("init_platform"),model/riscv_platform.sail:370),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:370)),model/riscv_platform.sail:370),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_platform.sail:267))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:370)),model/riscv_platform.sail:370)),model/riscv_platform.sail:370),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("init_platform"),model/riscv_platform.sail:370),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_platform.sail:370)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("htif_tohost"),model/riscv_platform.sail:371)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_platform.sail:371),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_platform.sail:371)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("htif_done"),model/riscv_platform.sail:372)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/riscv_platform.sail:372)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("htif_exit_code"),model/riscv_platform.sail:373)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_platform.sail:373),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_platform.sail:373)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:370)),model/riscv_platform.sail:370))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:370)),model/riscv_platform.sail:370),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("tick_platform"),model/riscv_platform.sail:376),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:376)),model/riscv_platform.sail:376),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:332));(BE_aux(BE_wreg,model/riscv_platform.sail:332))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:376)),model/riscv_platform.sail:376)),model/riscv_platform.sail:376),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("tick_platform"),model/riscv_platform.sail:376),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_platform.sail:376)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("htif_tick"),model/riscv_platform.sail:377),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:377)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:332)),model/riscv_platform.sail:332)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:376)),model/riscv_platform.sail:376))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:376)),model/riscv_platform.sail:376),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("handle_illegal"),model/riscv_platform.sail:382),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_types.sail:248));(BE_aux(BE_rreg,model/riscv_sys_regs.sail:5));(BE_aux(BE_wreg,:1))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)),model/riscv_platform.sail:382),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("handle_illegal"),model/riscv_platform.sail:382),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_platform.sail:382)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("info"),model/riscv_platform.sail:383)),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)),E_aux(E_if(E_aux(E_app(Id_aux(Id("plat_mtval_has_illegal_inst_bits"),model/riscv_platform.sail:383),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:383)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:49)),model/riscv_platform.sail:49)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_platform.sail:384),[(E_aux(E_id(Id_aux(Id("instbits"),model/riscv_platform.sail:384)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("None"),model/riscv_platform.sail:385),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:385)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_platform.sail:386)),model/riscv_platform.sail:386),P_aux(P_id(Id_aux(Id("t"),model/riscv_platform.sail:386)),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_platform.sail:386)),model/riscv_platform.sail:386))),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_platform.sail:386)),model/riscv_platform.sail:386)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("trap"),model/riscv_platform.sail:386),E_aux(E_app(Id_aux(Id("E_Illegal_Instr"),model/riscv_platform.sail:386),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:386)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown))),None));(FE_aux(FE_Fexp(Id_aux(Id("excinfo"),model/riscv_platform.sail:387),E_aux(E_id(Id_aux(Id("info"),model/riscv_platform.sail:387)),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None));(FE_aux(FE_Fexp(Id_aux(Id("ext"),model/riscv_platform.sail:388),E_aux(E_app(Id_aux(Id("None"),model/riscv_platform.sail:388),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:388)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:3)),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_platform.sail:386)),model/riscv_platform.sail:386))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("set_next_pc"),model/riscv_platform.sail:389),[(E_aux(E_app(Id_aux(Id("exception_handler"),model/riscv_platform.sail:389),[(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_platform.sail:389)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)));(E_aux(E_app(Id_aux(Id("CTL_TRAP"),model/riscv_platform.sail:389),[(E_aux(E_id(Id_aux(Id("t"),model/riscv_platform.sail:389)),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_platform.sail:386)),model/riscv_platform.sail:386)))]),Typ_aux(Typ_app(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268),[]),Unknown)));(E_aux(E_id(Id_aux(Id("PC"),model/riscv_platform.sail:389)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("platform_wfi"),model/riscv_platform.sail:394),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:394)),model/riscv_platform.sail:394),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:391));(BE_aux(BE_wreg,model/riscv_sys_regs.sail:391))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:394)),model/riscv_platform.sail:394)),model/riscv_platform.sail:394),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("platform_wfi"),model/riscv_platform.sail:394),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_platform.sail:394)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("cancel_reservation"),model/riscv_platform.sail:395),[(E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:395)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:140)),model/riscv_sys_control.sail:140)));(E_aux(E_if(E_aux(E_app(Id_aux(Operator("<_u"),model/riscv_platform.sail:399),[(E_aux(E_id(Id_aux(Id("mtime"),model/riscv_platform.sail:399)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("mtimecmp"),model/riscv_platform.sail:399)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:149)),model/prelude.sail:149)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mtime"),model/riscv_platform.sail:400)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("mtimecmp"),model/riscv_platform.sail:400)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mcycle"),model/riscv_platform.sail:401)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("mtimecmp"),model/riscv_platform.sail:401)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:394)),model/riscv_platform.sail:394)),E_aux(E_lit(L_aux(L_unit,model/riscv_platform.sail:402)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:394)),model/riscv_platform.sail:394)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:394)),model/riscv_platform.sail:394))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:394)),model/riscv_platform.sail:394),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("is_aligned_addr"),model/riscv_mem.sail:19),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:19),Kid_aux(Var("'n"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19)),model/riscv_mem.sail:19))]),model/riscv_mem.sail:19),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:19),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19)),model/riscv_mem.sail:19))]),model/riscv_mem.sail:19))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:19),Kid_aux(Var("'n"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19)),model/riscv_mem.sail:19))]),model/riscv_mem.sail:19),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19)),model/riscv_mem.sail:19),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("is_aligned_addr"),model/riscv_mem.sail:19),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19),P_aux(P_id(Id_aux(Id("addr"),model/riscv_mem.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:19),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19)),model/riscv_mem.sail:19))]),model/riscv_mem.sail:19),P_aux(P_id(Id_aux(Id("width"),model/riscv_mem.sail:19)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:19),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19)),model/riscv_mem.sail:19))]),model/riscv_mem.sail:19)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:19),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19)),model/riscv_mem.sail:19))]),model/riscv_mem.sail:19))]),model/riscv_mem.sail:19-20)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("emod_int"),model/prelude.sail:81),[(E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_mem.sail:20),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_mem.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:20)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex4752#"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_var(Kid_aux(Var("'ex4752#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex4752#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/smt.sail:21),[(A_aux(A_nexp(Nexp_aux(Nexp_app(Id_aux(Id("mod"),../sail/lib/smt.sail:21),[(Nexp_aux(Nexp_var(Kid_aux(Var("'ex4752#"),Unknown)),Unknown));(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19))]),../sail/lib/smt.sail:21)),../sail/lib/smt.sail:21))]),../sail/lib/smt.sail:21)),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_mem.sail:20)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex4753#"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_var(Kid_aux(Var("'ex4753#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex4753#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_app(Id_aux(Id("mod"),../sail/lib/smt.sail:21),[(Nexp_aux(Nexp_var(Kid_aux(Var("'ex4753#"),Unknown)),Unknown));(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19))]),../sail/lib/smt.sail:21),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:19),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19)),model/riscv_mem.sail:19))]),model/riscv_mem.sail:19))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("read_kind_of_flags"),model/riscv_mem.sail:22),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:22),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22)),model/riscv_mem.sail:22))]),model/riscv_mem.sail:22),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:22),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22)),model/riscv_mem.sail:22))]),model/riscv_mem.sail:22)),model/riscv_mem.sail:22),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("read_kind_of_flags"),model/riscv_mem.sail:22),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22),P_aux(P_id(Id_aux(Id("aq"),model/riscv_mem.sail:22)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4761#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22),P_aux(P_id(Id_aux(Id("rl"),model/riscv_mem.sail:22)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4763#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22),P_aux(P_id(Id_aux(Id("res"),model/riscv_mem.sail:22)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4765#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22))]),model/riscv_mem.sail:22-32)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("aq"),model/riscv_mem.sail:23)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4761#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_mem.sail:23)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4763#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("res"),model/riscv_mem.sail:23)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4765#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4761#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4763#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4765#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:24)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:24)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:24)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4761#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4763#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4765#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_mem.sail:24),[(E_aux(E_id(Id_aux(Id("Read_plain"),model/riscv_mem.sail:24)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:25)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:25)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:25)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4761#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4763#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4765#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_mem.sail:25),[(E_aux(E_id(Id_aux(Id("Read_RISCV_acquire"),model/riscv_mem.sail:25)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:26)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:26)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:26)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4761#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4763#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4765#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_mem.sail:26),[(E_aux(E_id(Id_aux(Id("Read_RISCV_strong_acquire"),model/riscv_mem.sail:26)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:27)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:27)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:27)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4761#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4763#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4765#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_mem.sail:27),[(E_aux(E_id(Id_aux(Id("Read_RISCV_reserved"),model/riscv_mem.sail:27)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:28)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:28)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:28)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4761#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4763#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4765#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_mem.sail:28),[(E_aux(E_id(Id_aux(Id("Read_RISCV_reserved_acquire"),model/riscv_mem.sail:28)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:29)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:29)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:29)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4761#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4763#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4765#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_mem.sail:29),[(E_aux(E_id(Id_aux(Id("Read_RISCV_reserved_strong_acquire"),model/riscv_mem.sail:29)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:30)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:30)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:30)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4761#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4763#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4765#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("None"),model/riscv_mem.sail:30),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:30)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:31)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:31)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:31)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4761#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4763#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4765#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("None"),model/riscv_mem.sail:31),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:31)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:22),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22)),model/riscv_mem.sail:22))]),model/riscv_mem.sail:22))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:22),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22)),model/riscv_mem.sail:22))]),model/riscv_mem.sail:22),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("phys_mem_read"),model/riscv_mem.sail:35),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:35),Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:35),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_mem.sail:35),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35));(Typ_aux(Typ_id(Id_aux(Id("mem_meta"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35),Effect_aux(Effect_set([(BE_aux(BE_rmem,model/prelude_mem.sail:40));(BE_aux(BE_rmemt,model/prelude_mem.sail:40))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:35),Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_mem.sail:35),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35));(Typ_aux(Typ_id(Id_aux(Id("mem_meta"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35)),model/riscv_mem.sail:35),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("phys_mem_read"),model/riscv_mem.sail:35),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35),P_aux(P_id(Id_aux(Id("t"),model/riscv_mem.sail:35)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35))),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35),P_aux(P_id(Id_aux(Id("paddr"),model/riscv_mem.sail:35)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:35),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35),P_aux(P_id(Id_aux(Id("width"),model/riscv_mem.sail:35)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:35),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35),P_aux(P_id(Id_aux(Id("aq"),model/riscv_mem.sail:35)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4779#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35),P_aux(P_id(Id_aux(Id("rl"),model/riscv_mem.sail:35)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4781#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35),P_aux(P_id(Id_aux(Id("res"),model/riscv_mem.sail:35)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4783#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35),P_aux(P_id(Id_aux(Id("meta"),model/riscv_mem.sail:35)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4785#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:35),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35-48)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("result"),model/riscv_mem.sail:36)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:39),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39)),E_aux(E_cast(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:39),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_mem.sail:39),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39));(Typ_aux(Typ_id(Id_aux(Id("mem_meta"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39),E_aux(E_case(E_aux(E_app(Id_aux(Id("read_kind_of_flags"),model/riscv_mem.sail:36),[(E_aux(E_id(Id_aux(Id("aq"),model/riscv_mem.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4779#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_mem.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4781#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("res"),model/riscv_mem.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4783#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:22),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22)),model/riscv_mem.sail:22))]),model/riscv_mem.sail:22)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_mem.sail:37),[(P_aux(P_id(Id_aux(Id("rk"),model/riscv_mem.sail:37)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:22),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22)),model/riscv_mem.sail:22))]),model/riscv_mem.sail:22)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_mem.sail:37),[(E_aux(E_app(Id_aux(Id("read_ram"),model/riscv_mem.sail:37),[(E_aux(E_id(Id_aux(Id("rk"),model/riscv_mem.sail:37)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),../sail/lib/option.sail:10)));(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:37)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("meta"),model/riscv_mem.sail:37)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4785#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/prelude_mem.sail:40),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/prelude_mem.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/prelude_mem.sail:40)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_mem.sail:38),[(P_aux(P_lit(L_aux(L_unit,model/riscv_mem.sail:38)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:22),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("read_kind"),model/riscv_mem.sail:22)),model/riscv_mem.sail:22)),model/riscv_mem.sail:22))]),model/riscv_mem.sail:22)),E_aux(E_app(Id_aux(Id("None"),model/riscv_mem.sail:38),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:38)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:39),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:39),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("t"),model/riscv_mem.sail:40)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_mem.sail:40)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:39),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:39),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Execute"),model/riscv_mem.sail:41),[(P_aux(P_lit(L_aux(L_unit,model/riscv_mem.sail:41)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35)));(P_aux(P_app(Id_aux(Id("None"),model/riscv_mem.sail:41),[(P_aux(P_lit(L_aux(L_unit,model/riscv_mem.sail:41)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:39),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:39),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39))]),Unknown)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_mem.sail:41),[(E_aux(E_app(Id_aux(Id("E_Fetch_Access_Fault"),model/riscv_mem.sail:41),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:41)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Read"),model/riscv_mem.sail:42),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_mem.sail:42)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:101)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35)));(P_aux(P_app(Id_aux(Id("None"),model/riscv_mem.sail:42),[(P_aux(P_lit(L_aux(L_unit,model/riscv_mem.sail:42)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:39),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:39),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39))]),Unknown)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_mem.sail:42),[(E_aux(E_app(Id_aux(Id("E_Load_Access_Fault"),model/riscv_mem.sail:42),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:42)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35)));(P_aux(P_app(Id_aux(Id("None"),model/riscv_mem.sail:43),[(P_aux(P_lit(L_aux(L_unit,model/riscv_mem.sail:43)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:39),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:39),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39))]),Unknown)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_mem.sail:43),[(E_aux(E_app(Id_aux(Id("E_SAMO_Access_Fault"),model/riscv_mem.sail:43),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:43)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35)));(P_aux(P_app(Id_aux(Id("Some"),model/riscv_mem.sail:44),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),model/riscv_mem.sail:44)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("m"),model/riscv_mem.sail:44)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:39),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_mem.sail:39),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:39)),model/riscv_mem.sail:39))]),model/riscv_mem.sail:39))]),Unknown)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_mem"),model/riscv_mem.sail:44),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:44)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:107)),model/prelude.sail:107)),E_aux(E_app(Id_aux(Id("print_mem"),model/riscv_mem.sail:45),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("mem["),model/riscv_mem.sail:45)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("accessType_to_str"),model/riscv_vmem_types.sail:18),[(E_aux(E_id(Id_aux(Id("t"),model/riscv_mem.sail:45)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_vmem_types.sail:9)),model/riscv_vmem_types.sail:9)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(","),model/riscv_mem.sail:45)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] -> "),model/riscv_mem.sail:45)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_mem.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:102)),model/prelude.sail:102)),E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:45)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_mem.sail:46),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("v"),model/riscv_mem.sail:46)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:39),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),model/riscv_mem.sail:39)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("m"),model/riscv_mem.sail:46)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:35),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),model/riscv_mem.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("checked_mem_read"),model/riscv_mem.sail:51),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:51),Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:51),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:51),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:51),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:51),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_mem.sail:51),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:51),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51));(Typ_aux(Typ_id(Id_aux(Id("mem_meta"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51),Effect_aux(Effect_set([(BE_aux(BE_rmem,model/prelude_mem.sail:40));(BE_aux(BE_rmemt,model/prelude_mem.sail:40));(BE_aux(BE_rreg,model/riscv_platform.sail:145))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:51),Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:51),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:51),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_mem.sail:51),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:51),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51));(Typ_aux(Typ_id(Id_aux(Id("mem_meta"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51)),model/riscv_mem.sail:51),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("checked_mem_read"),model/riscv_mem.sail:51),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:51),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51),P_aux(P_id(Id_aux(Id("t"),model/riscv_mem.sail:51)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:51),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51))),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:51),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51),P_aux(P_id(Id_aux(Id("paddr"),model/riscv_mem.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:51),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51),P_aux(P_id(Id_aux(Id("width"),model/riscv_mem.sail:51)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:51),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51),P_aux(P_id(Id_aux(Id("aq"),model/riscv_mem.sail:51)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4838#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51),P_aux(P_id(Id_aux(Id("rl"),model/riscv_mem.sail:51)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4840#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51),P_aux(P_id(Id_aux(Id("res"),model/riscv_mem.sail:51)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4842#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51),P_aux(P_id(Id_aux(Id("meta"),model/riscv_mem.sail:51)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4844#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:51),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:51),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51-56)),E_aux(E_if(E_aux(E_app(Id_aux(Id("within_mmio_readable"),model/riscv_mem.sail:52),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:52)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:341)),model/riscv_platform.sail:341)),E_aux(E_app(Id_aux(Id("MemoryOpResult_add_meta"),model/riscv_mem.sail:53),[(E_aux(E_app(Id_aux(Id("mmio_read"),model/riscv_mem.sail:53),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:53)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:354),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_platform.sail:354),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_platform.sail:354)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_platform.sail:354))]),model/riscv_platform.sail:354)));(E_aux(E_id(Id_aux(Id("default_meta"),model/riscv_mem.sail:53)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:493),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:51),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:493));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_sys_control.sail:493)),model/riscv_sys_control.sail:493))]),model/riscv_sys_control.sail:493)),E_aux(E_if(E_aux(E_app(Id_aux(Id("within_phys_mem"),model/riscv_mem.sail:54),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:54)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:54)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),E_aux(E_app(Id_aux(Id("phys_mem_read"),model/riscv_mem.sail:55),[(E_aux(E_id(Id_aux(Id("t"),model/riscv_mem.sail:55)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:51),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51)));(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:55)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:55)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_mem.sail:55)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4838#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_mem.sail:55)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4840#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("res"),model/riscv_mem.sail:55)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4842#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("meta"),model/riscv_mem.sail:55)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4844#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:35),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:35)),model/riscv_mem.sail:35))]),model/riscv_mem.sail:35)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_mem.sail:56),[(E_aux(E_app(Id_aux(Id("E_Load_Access_Fault"),model/riscv_mem.sail:56),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:56)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:51),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:51),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:51),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:51),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:51),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:51),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:51),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:51),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:51),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),model/riscv_mem.sail:51)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmp_mem_read"),model/riscv_mem.sail:59),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:59),Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:59),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:59),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_mem.sail:59),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:59),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59));(Typ_aux(Typ_id(Id_aux(Id("mem_meta"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59),Effect_aux(Effect_set([(BE_aux(BE_rmem,model/prelude_mem.sail:40));(BE_aux(BE_rmemt,model/prelude_mem.sail:40));(BE_aux(BE_rreg,model/riscv_platform.sail:145))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:59),Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:59),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_mem.sail:59),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:59),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59));(Typ_aux(Typ_id(Id_aux(Id("mem_meta"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59)),model/riscv_mem.sail:59),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmp_mem_read"),model/riscv_mem.sail:59),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59),P_aux(P_id(Id_aux(Id("t"),model/riscv_mem.sail:59)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59))),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59),P_aux(P_id(Id_aux(Id("paddr"),model/riscv_mem.sail:59)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:59),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59),P_aux(P_id(Id_aux(Id("width"),model/riscv_mem.sail:59)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:59),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59),P_aux(P_id(Id_aux(Id("aq"),model/riscv_mem.sail:59)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4883#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59),P_aux(P_id(Id_aux(Id("rl"),model/riscv_mem.sail:59)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4885#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59),P_aux(P_id(Id_aux(Id("res"),model/riscv_mem.sail:59)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4887#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59),P_aux(P_id(Id_aux(Id("meta"),model/riscv_mem.sail:59)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4889#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:59),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59-67)),E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("plat_enable_pmp"),model/riscv_mem.sail:60),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:60)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:29)),model/riscv_platform.sail:29)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4891#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4891#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("checked_mem_read"),model/riscv_mem.sail:61),[(E_aux(E_id(Id_aux(Id("t"),model/riscv_mem.sail:61)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59)));(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:61)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_mem.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4883#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_mem.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4885#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("res"),model/riscv_mem.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4887#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("meta"),model/riscv_mem.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4889#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:51),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:51),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:51)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpCheck"),model/riscv_mem.sail:63),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:63)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:63)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("t"),model/riscv_mem.sail:63)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59)));(E_aux(E_app(Id_aux(Id("effectivePrivilege"),model/riscv_mem.sail:63),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_mem.sail:63)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)));(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_mem.sail:63)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_mem.sail:64),[(P_aux(P_lit(L_aux(L_unit,model/riscv_mem.sail:64)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86)),E_aux(E_app(Id_aux(Id("checked_mem_read"),model/riscv_mem.sail:64),[(E_aux(E_id(Id_aux(Id("t"),model/riscv_mem.sail:64)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59)));(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:64)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:64)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_mem.sail:64)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4883#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_mem.sail:64)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4885#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("res"),model/riscv_mem.sail:64)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4887#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("meta"),model/riscv_mem.sail:64)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4889#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:51),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:51),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:51)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:51)),model/riscv_mem.sail:51))]),model/riscv_mem.sail:51))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_mem.sail:65),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_mem.sail:65)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_mem.sail:65),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_mem.sail:65)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:59),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:59),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:59),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:59),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:59),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:59),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),model/riscv_mem.sail:59)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("rvfi_read"),model/riscv_mem.sail:84),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:84),Kid_aux(Var("'n"),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)),model/riscv_mem.sail:84));(QI_aux(QI_constraint(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:84)),model/riscv_mem.sail:84),Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)),model/riscv_mem.sail:84))]),model/riscv_mem.sail:84),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:84),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)),model/riscv_mem.sail:84))]),model/riscv_mem.sail:84));(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:84),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:84),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:84))]),model/riscv_mem.sail:84))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:84)),model/riscv_mem.sail:84),Effect_aux(Effect_set([]),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)),model/riscv_mem.sail:84))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("rvfi_read"),model/riscv_mem.sail:85),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("addr"),model/riscv_mem.sail:85)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_mem.sail:85)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_mem.sail:85)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:84),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:84),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:84))]),model/riscv_mem.sail:84)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:84),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:84),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:84))]),model/riscv_mem.sail:84))]),model/riscv_mem.sail:85)),E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:85)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:84),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:84),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:84))]),model/riscv_mem.sail:84))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:84)),model/riscv_mem.sail:84),Effect_aux(Effect_set([]),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("mem_read"),model/riscv_mem.sail:93),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:93),Kid_aux(Var("'n"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),model/riscv_mem.sail:93));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:93),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),model/riscv_mem.sail:93),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:93),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93),Effect_aux(Effect_set([(BE_aux(BE_rmem,model/riscv_mem.sail:93));(BE_aux(BE_rmemt,model/riscv_mem.sail:93));(BE_aux(BE_rreg,model/riscv_mem.sail:93));(BE_aux(BE_escape,model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),model/riscv_mem.sail:93))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("mem_read_meta"),model/riscv_mem.sail:94),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:94),Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),model/riscv_mem.sail:94));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:94),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),model/riscv_mem.sail:94),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),model/riscv_mem.sail:94))]),model/riscv_mem.sail:94),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:94),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:94))]),model/riscv_mem.sail:94));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:94),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),model/riscv_mem.sail:94))]),model/riscv_mem.sail:94));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:94),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:94),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:94)),model/riscv_mem.sail:94))]),model/riscv_mem.sail:94),Effect_aux(Effect_set([(BE_aux(BE_rmem,model/riscv_mem.sail:94));(BE_aux(BE_rmemt,model/riscv_mem.sail:94));(BE_aux(BE_rreg,model/riscv_mem.sail:94));(BE_aux(BE_escape,model/riscv_mem.sail:94))]),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),model/riscv_mem.sail:94))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("mem_read"),model/riscv_mem.sail:97),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("typ"),model/riscv_mem.sail:97)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)));(P_aux(P_id(Id_aux(Id("paddr"),model/riscv_mem.sail:97)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_mem.sail:97)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("aq"),model/riscv_mem.sail:97)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4927#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rl"),model/riscv_mem.sail:97)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4928#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("res"),model/riscv_mem.sail:97)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4929#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4927#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4928#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4929#"),Unknown)),Unknown)),Unknown))]),Unknown))]),model/riscv_mem.sail:97-108)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:98),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_mem.sail:98),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:98),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),model/riscv_mem.sail:98))]),model/riscv_mem.sail:98)),model/riscv_mem.sail:98))]),model/riscv_mem.sail:98),P_aux(P_id(Id_aux(Id("result"),model/riscv_mem.sail:98)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:98),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:98),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:98))]),model/riscv_mem.sail:98))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:98),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:98),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:98))]),model/riscv_mem.sail:98)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_id(Id_aux(Id("aq"),model/riscv_mem.sail:99)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4927#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("res"),model/riscv_mem.sail:99)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4929#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:26),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex4927#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex4929#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26))]),../sail/lib/flow.sail:26)));(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("is_aligned_addr"),model/riscv_mem.sail:99),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:99)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:99)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4941#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4941#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4943#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex4927#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex4929#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4943#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_mem.sail:100),[(E_aux(E_app(Id_aux(Id("E_Load_Addr_Align"),model/riscv_mem.sail:100),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:100)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:98),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("aq"),model/riscv_mem.sail:101)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4927#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_mem.sail:101)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4928#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("res"),model/riscv_mem.sail:101)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4929#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4927#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4928#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4929#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:102)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:102)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:102)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4927#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4928#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4929#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_throw(E_aux(E_app(Id_aux(Id("Error_not_implemented"),model/riscv_mem.sail:102),[(E_aux(E_lit(L_aux(L_string("load.rl"),model/riscv_mem.sail:102)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("exception"),model/riscv_types.sail:240),[]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:98),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:98),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:98))]),model/riscv_mem.sail:98))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:103)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:103)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:103)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4927#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4928#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4929#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_throw(E_aux(E_app(Id_aux(Id("Error_not_implemented"),model/riscv_mem.sail:103),[(E_aux(E_lit(L_aux(L_string("lr.rl"),model/riscv_mem.sail:103)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("exception"),model/riscv_types.sail:240),[]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:98),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:98),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:98))]),model/riscv_mem.sail:98))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4927#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4928#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4929#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4927#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4928#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4929#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("MemoryOpResult_drop_meta"),model/riscv_mem.sail:104),[(E_aux(E_app(Id_aux(Id("pmp_mem_read"),model/riscv_mem.sail:104),[(E_aux(E_id(Id_aux(Id("typ"),model/riscv_mem.sail:104)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)));(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:104)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_mem.sail:104)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4927#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_mem.sail:104)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4928#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("res"),model/riscv_mem.sail:104)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4929#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_mem.sail:104)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:59),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),model/riscv_mem.sail:59)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:499),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:98),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499))]),model/riscv_sys_control.sail:499))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:98),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:98),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:98))]),model/riscv_mem.sail:98))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:98),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:98),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:98))]),model/riscv_mem.sail:98))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("rvfi_read"),model/riscv_mem.sail:106),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:106)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_mem.sail:106)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:98),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:98),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:98))]),model/riscv_mem.sail:98)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_mem.sail:107)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:98),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:98),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),model/riscv_mem.sail:98)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:98))]),model/riscv_mem.sail:98)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4927#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4928#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4929#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93),Effect_aux(Effect_set([(BE_aux(BE_rmem,model/riscv_mem.sail:93));(BE_aux(BE_rmemt,model/riscv_mem.sail:93));(BE_aux(BE_rreg,model/riscv_mem.sail:93));(BE_aux(BE_escape,model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)),model/riscv_mem.sail:93)))]),None)));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("mem_read_meta"),model/riscv_mem.sail:110),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("typ"),model/riscv_mem.sail:110)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:94),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:94))]),model/riscv_mem.sail:94)));(P_aux(P_id(Id_aux(Id("addr"),model/riscv_mem.sail:110)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_mem.sail:110)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("aq"),model/riscv_mem.sail:110)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4934#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rl"),model/riscv_mem.sail:110)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4935#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("res"),model/riscv_mem.sail:110)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4936#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:94),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:94))]),model/riscv_mem.sail:94));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4934#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4935#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4936#"),Unknown)),Unknown)),Unknown))]),Unknown))]),model/riscv_mem.sail:110-121)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:111),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_mem.sail:111),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:111),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),model/riscv_mem.sail:111))]),model/riscv_mem.sail:111));(Typ_aux(Typ_id(Id_aux(Id("mem_meta"),model/riscv_mem.sail:111)),model/riscv_mem.sail:111))]),model/riscv_mem.sail:111)),model/riscv_mem.sail:111))]),model/riscv_mem.sail:111),P_aux(P_id(Id_aux(Id("result"),model/riscv_mem.sail:111)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:111),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:111),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:111)),model/riscv_mem.sail:111))]),model/riscv_mem.sail:111))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:111),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:111),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:111)),model/riscv_mem.sail:111))]),model/riscv_mem.sail:111)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_id(Id_aux(Id("aq"),model/riscv_mem.sail:112)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4934#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("res"),model/riscv_mem.sail:112)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4936#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:26),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex4934#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex4936#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26))]),../sail/lib/flow.sail:26)));(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("is_aligned_addr"),model/riscv_mem.sail:112),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_mem.sail:112)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:112)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4969#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4969#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex4971#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex4934#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex4936#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4971#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_mem.sail:113),[(E_aux(E_app(Id_aux(Id("E_Load_Addr_Align"),model/riscv_mem.sail:113),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:113)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:111),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("aq"),model/riscv_mem.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4934#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_mem.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4935#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("res"),model/riscv_mem.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4936#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4934#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4935#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4936#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:115)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:115)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:115)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4934#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4935#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4936#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_throw(E_aux(E_app(Id_aux(Id("Error_not_implemented"),model/riscv_mem.sail:115),[(E_aux(E_lit(L_aux(L_string("load.rl"),model/riscv_mem.sail:115)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("exception"),model/riscv_types.sail:240),[]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:111),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:111),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:111)),model/riscv_mem.sail:111))]),model/riscv_mem.sail:111))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:116)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:116)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:116)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4934#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4935#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4936#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_throw(E_aux(E_app(Id_aux(Id("Error_not_implemented"),model/riscv_mem.sail:116),[(E_aux(E_lit(L_aux(L_string("lr.rl"),model/riscv_mem.sail:116)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("exception"),model/riscv_types.sail:240),[]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:111),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:111),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:111)),model/riscv_mem.sail:111))]),model/riscv_mem.sail:111))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4934#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4935#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4936#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4934#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4935#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4936#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("pmp_mem_read"),model/riscv_mem.sail:117),[(E_aux(E_id(Id_aux(Id("typ"),model/riscv_mem.sail:117)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:94),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:94))]),model/riscv_mem.sail:94)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_mem.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:117)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_mem.sail:117)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4934#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_mem.sail:117)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4935#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("res"),model/riscv_mem.sail:117)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4936#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_true,model/riscv_mem.sail:117)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:59),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),model/riscv_mem.sail:59)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:59)),model/riscv_mem.sail:59))]),model/riscv_mem.sail:59))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:111),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:111),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:111)),model/riscv_mem.sail:111))]),model/riscv_mem.sail:111))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:111),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:111),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:111)),model/riscv_mem.sail:111))]),model/riscv_mem.sail:111))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("rvfi_read"),model/riscv_mem.sail:119),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_mem.sail:119)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:119)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("MemoryOpResult_drop_meta"),model/riscv_mem.sail:119),[(E_aux(E_id(Id_aux(Id("result"),model/riscv_mem.sail:119)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:111),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:111),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:111)),model/riscv_mem.sail:111))]),model/riscv_mem.sail:111)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:499),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:84),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),model/riscv_mem.sail:84)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:499)),model/riscv_sys_control.sail:499))]),model/riscv_sys_control.sail:499)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:84)),model/riscv_mem.sail:84)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_mem.sail:120)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:111),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:111),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),model/riscv_mem.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:111)),model/riscv_mem.sail:111))]),model/riscv_mem.sail:111)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:94),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:94),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:94)),model/riscv_mem.sail:94))]),model/riscv_mem.sail:94))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:94),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:94),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:94)),model/riscv_mem.sail:94))]),model/riscv_mem.sail:94)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:94),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:94),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:94)),model/riscv_mem.sail:94))]),model/riscv_mem.sail:94))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_mem.sail:94),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_mem.sail:94))]),model/riscv_mem.sail:94));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4934#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4935#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4936#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:94),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:94),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:94)),model/riscv_mem.sail:94))]),model/riscv_mem.sail:94),Effect_aux(Effect_set([(BE_aux(BE_rmem,model/riscv_mem.sail:94));(BE_aux(BE_rmemt,model/riscv_mem.sail:94));(BE_aux(BE_rreg,model/riscv_mem.sail:94));(BE_aux(BE_escape,model/riscv_mem.sail:94))]),model/riscv_mem.sail:94)),model/riscv_mem.sail:94)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("mem_write_ea"),model/riscv_mem.sail:123),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:123),Kid_aux(Var("'n"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:123),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:123),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:123),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123),Effect_aux(Effect_set([(BE_aux(BE_eamem,model/riscv_mem.sail:123));(BE_aux(BE_escape,model/riscv_mem.sail:123))]),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("mem_write_ea"),model/riscv_mem.sail:125),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("addr"),model/riscv_mem.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_mem.sail:125)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("aq"),model/riscv_mem.sail:125)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4995#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rl"),model/riscv_mem.sail:125)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("con"),model/riscv_mem.sail:125)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4995#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),Unknown)),Unknown))]),Unknown))]),model/riscv_mem.sail:125-138)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_id(Id_aux(Id("rl"),model/riscv_mem.sail:126)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("con"),model/riscv_mem.sail:126)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:26),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26))]),../sail/lib/flow.sail:26)));(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("is_aligned_addr"),model/riscv_mem.sail:126),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_mem.sail:126)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:126)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5001#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5001#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5003#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5003#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_mem.sail:127),[(E_aux(E_app(Id_aux(Id("E_SAMO_Addr_Align"),model/riscv_mem.sail:127),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:127)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("aq"),model/riscv_mem.sail:128)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4995#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_mem.sail:128)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("con"),model/riscv_mem.sail:128)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4995#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:129)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:129)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:129)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4995#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_mem.sail:129),[(E_aux(E_app(Id_aux(Id("write_ram_ea"),model/riscv_mem.sail:129),[(E_aux(E_id(Id_aux(Id("Write_plain"),model/riscv_mem.sail:129)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_mem.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:129)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:130)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:130)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:130)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4995#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_mem.sail:130),[(E_aux(E_app(Id_aux(Id("write_ram_ea"),model/riscv_mem.sail:130),[(E_aux(E_id(Id_aux(Id("Write_RISCV_release"),model/riscv_mem.sail:130)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_mem.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:130)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:131)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:131)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:131)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4995#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_mem.sail:131),[(E_aux(E_app(Id_aux(Id("write_ram_ea"),model/riscv_mem.sail:131),[(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional"),model/riscv_mem.sail:131)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_mem.sail:131)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:131)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:132)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:132)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:132)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4995#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_mem.sail:132),[(E_aux(E_app(Id_aux(Id("write_ram_ea"),model/riscv_mem.sail:132),[(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional_release"),model/riscv_mem.sail:132)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_mem.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:132)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:133)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:133)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:133)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4995#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_throw(E_aux(E_app(Id_aux(Id("Error_not_implemented"),model/riscv_mem.sail:133),[(E_aux(E_lit(L_aux(L_string("store.aq"),model/riscv_mem.sail:133)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("exception"),model/riscv_types.sail:240),[]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:123),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:134)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:134)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:134)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4995#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_mem.sail:134),[(E_aux(E_app(Id_aux(Id("write_ram_ea"),model/riscv_mem.sail:134),[(E_aux(E_id(Id_aux(Id("Write_RISCV_strong_release"),model/riscv_mem.sail:134)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_mem.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:134)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:135)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:135)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:135)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4995#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_throw(E_aux(E_app(Id_aux(Id("Error_not_implemented"),model/riscv_mem.sail:135),[(E_aux(E_lit(L_aux(L_string("sc.aq"),model/riscv_mem.sail:135)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("exception"),model/riscv_types.sail:240),[]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:123),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:136)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:136)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:136)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4995#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_mem.sail:136),[(E_aux(E_app(Id_aux(Id("write_ram_ea"),model/riscv_mem.sail:136),[(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional_strong_release"),model/riscv_mem.sail:136)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_mem.sail:136)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:136)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem.sail:36)),model/prelude_mem.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:123),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:123),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:123),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4995#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4996#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex4997#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:123),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123),Effect_aux(Effect_set([(BE_aux(BE_eamem,model/riscv_mem.sail:123));(BE_aux(BE_escape,model/riscv_mem.sail:123))]),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("rvfi_write"),model/riscv_mem.sail:150),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:150),Kid_aux(Var("'n"),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)),model/riscv_mem.sail:150));(QI_aux(QI_constraint(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:150)),model/riscv_mem.sail:150),Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)),model/riscv_mem.sail:150))]),model/riscv_mem.sail:150),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:150),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)),model/riscv_mem.sail:150))]),model/riscv_mem.sail:150));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:150),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:150)),model/riscv_mem.sail:150),Effect_aux(Effect_set([]),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)),model/riscv_mem.sail:150))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("rvfi_write"),model/riscv_mem.sail:151),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("addr"),model/riscv_mem.sail:151)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_mem.sail:151)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_mem.sail:151)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:150),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:150),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_mem.sail:151)),E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:151)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:150),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:150)),model/riscv_mem.sail:150),Effect_aux(Effect_set([]),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("phys_mem_write"),model/riscv_mem.sail:155),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:155),Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:155),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:155),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155));(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_mem.sail:155),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:155),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155));(Typ_aux(Typ_id(Id_aux(Id("mem_meta"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:155),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155),Effect_aux(Effect_set([(BE_aux(BE_wmv,model/prelude_mem.sail:22));(BE_aux(BE_wmvt,model/prelude_mem.sail:22))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:155),Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:155),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:155),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155)),model/riscv_mem.sail:155),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("phys_mem_write"),model/riscv_mem.sail:155),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155),P_aux(P_id(Id_aux(Id("wk"),model/riscv_mem.sail:155)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))),Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155),P_aux(P_id(Id_aux(Id("paddr"),model/riscv_mem.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:155),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155),P_aux(P_id(Id_aux(Id("width"),model/riscv_mem.sail:155)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:155),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_mem.sail:155),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:155),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155),P_aux(P_id(Id_aux(Id("data"),model/riscv_mem.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:155),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:155),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("mem_meta"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155),P_aux(P_id(Id_aux(Id("meta"),model/riscv_mem.sail:155)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:155),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:155),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:155-161)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("rvfi_write"),model/riscv_mem.sail:156),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:156)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:156)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("data"),model/riscv_mem.sail:156)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:155),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)));(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("result"),model/riscv_mem.sail:157)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'_result"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_mem.sail:157),[(E_aux(E_app(Id_aux(Id("write_ram"),model/riscv_mem.sail:157),[(E_aux(E_id(Id_aux(Id("wk"),model/riscv_mem.sail:157)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)));(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:157)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:157)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("data"),model/riscv_mem.sail:157)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:155),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("meta"),model/riscv_mem.sail:157)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude_mem.sail:22)),model/prelude_mem.sail:22)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5030#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5030#"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)),Unknown))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_mem"),model/riscv_mem.sail:158),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:158)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:107)),model/prelude.sail:107)),E_aux(E_app(Id_aux(Id("print_mem"),model/riscv_mem.sail:159),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("mem["),model/riscv_mem.sail:159)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:159)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] <- "),model/riscv_mem.sail:159)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("data"),model/riscv_mem.sail:159)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:155),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:102)),model/prelude.sail:102)),E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:159)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_mem.sail:160)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'_result"),Unknown)),Unknown)),Unknown))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:155),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:155),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:155),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:155),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:155),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:155),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("checked_mem_write"),model/riscv_mem.sail:164),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:164),Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:164),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:164),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164));(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_mem.sail:164),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:164),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164));(Typ_aux(Typ_id(Id_aux(Id("mem_meta"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:164),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:213));(BE_aux(BE_wmv,model/prelude_mem.sail:22));(BE_aux(BE_wmvt,model/prelude_mem.sail:22));(BE_aux(BE_wreg,model/riscv_platform.sail:213))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:164),Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:164),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:164),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164)),model/riscv_mem.sail:164),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("checked_mem_write"),model/riscv_mem.sail:164),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164),P_aux(P_id(Id_aux(Id("wk"),model/riscv_mem.sail:164)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))),Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164),P_aux(P_id(Id_aux(Id("paddr"),model/riscv_mem.sail:164)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:164),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164),P_aux(P_id(Id_aux(Id("width"),model/riscv_mem.sail:164)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:164),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_mem.sail:164),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:164),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164),P_aux(P_id(Id_aux(Id("data"),model/riscv_mem.sail:164)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:164),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:164),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("mem_meta"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164),P_aux(P_id(Id_aux(Id("meta"),model/riscv_mem.sail:164)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:164),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:164),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:164-169)),E_aux(E_if(E_aux(E_app(Id_aux(Id("within_mmio_writable"),model/riscv_mem.sail:165),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:165)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:348)),model/riscv_platform.sail:348)),E_aux(E_app(Id_aux(Id("mmio_write"),model/riscv_mem.sail:166),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:166)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("data"),model/riscv_mem.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:164),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_platform.sail:361),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:361)),model/riscv_platform.sail:361)),model/riscv_platform.sail:361))]),model/riscv_platform.sail:361)),E_aux(E_if(E_aux(E_app(Id_aux(Id("within_phys_mem"),model/riscv_mem.sail:167),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:167)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:167)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:72)),model/riscv_platform.sail:72)),E_aux(E_app(Id_aux(Id("phys_mem_write"),model/riscv_mem.sail:168),[(E_aux(E_id(Id_aux(Id("wk"),model/riscv_mem.sail:168)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)));(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:168)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("data"),model/riscv_mem.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:164),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("meta"),model/riscv_mem.sail:168)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:155),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:155)),model/riscv_mem.sail:155)),model/riscv_mem.sail:155))]),model/riscv_mem.sail:155)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_mem.sail:169),[(E_aux(E_app(Id_aux(Id("E_SAMO_Access_Fault"),model/riscv_mem.sail:169),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:169)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:164)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:164),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:164),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:164),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:164),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:164),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("pmp_mem_write"),model/riscv_mem.sail:172),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:172),Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:172),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:172),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172));(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_mem.sail:172),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:172),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172));(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172));(Typ_aux(Typ_id(Id_aux(Id("mem_meta"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:172),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_platform.sail:213));(BE_aux(BE_wmv,model/prelude_mem.sail:22));(BE_aux(BE_wmvt,model/prelude_mem.sail:22));(BE_aux(BE_wreg,model/riscv_platform.sail:213))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:172),Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:172),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:172),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172)),model/riscv_mem.sail:172),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("pmp_mem_write"),model/riscv_mem.sail:172),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172),P_aux(P_id(Id_aux(Id("wk"),model/riscv_mem.sail:172)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))),Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172),P_aux(P_id(Id_aux(Id("paddr"),model/riscv_mem.sail:172)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:172),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172),P_aux(P_id(Id_aux(Id("width"),model/riscv_mem.sail:172)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:172),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_mem.sail:172),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:172),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172),P_aux(P_id(Id_aux(Id("data"),model/riscv_mem.sail:172)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:172),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:172),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172),P_aux(P_id(Id_aux(Id("ext_acc"),model/riscv_mem.sail:172)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("mem_meta"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172),P_aux(P_id(Id_aux(Id("meta"),model/riscv_mem.sail:172)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:172),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:172),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))]),model/riscv_mem.sail:172-178)),E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("plat_enable_pmp"),model/riscv_mem.sail:173),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:173)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:29)),model/riscv_platform.sail:29)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5089#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5089#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("checked_mem_write"),model/riscv_mem.sail:174),[(E_aux(E_id(Id_aux(Id("wk"),model/riscv_mem.sail:174)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)));(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:174)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("data"),model/riscv_mem.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:172),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("meta"),model/riscv_mem.sail:174)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:164),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164)),E_aux(E_case(E_aux(E_app(Id_aux(Id("pmpCheck"),model/riscv_mem.sail:175),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:175)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:175)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("Write"),model/riscv_mem.sail:175),[(E_aux(E_id(Id_aux(Id("ext_acc"),model/riscv_mem.sail:175)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("effectivePrivilege"),model/riscv_mem.sail:175),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_mem.sail:175)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)));(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_mem.sail:175)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_mem.sail:176),[(P_aux(P_lit(L_aux(L_unit,model/riscv_mem.sail:176)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86)),E_aux(E_app(Id_aux(Id("checked_mem_write"),model/riscv_mem.sail:176),[(E_aux(E_id(Id_aux(Id("wk"),model/riscv_mem.sail:176)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)));(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:176)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:176)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("data"),model/riscv_mem.sail:176)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:172),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("meta"),model/riscv_mem.sail:176)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:164),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:164)),model/riscv_mem.sail:164)),model/riscv_mem.sail:164))]),model/riscv_mem.sail:164))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_mem.sail:177),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_mem.sail:177)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pmp_control.sail:86),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86)),model/riscv_pmp_control.sail:86))]),model/riscv_pmp_control.sail:86)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_mem.sail:177),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_mem.sail:177)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_pmp_control.sail:86)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:172)),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:172),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:172),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("write_kind"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:172),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:172),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:172),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("mem_write_value_meta"),model/riscv_mem.sail:187),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:187),Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187))]),model/riscv_mem.sail:187),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:187),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187))]),model/riscv_mem.sail:187));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:187),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187))]),model/riscv_mem.sail:187),Effect_aux(Effect_set([(BE_aux(BE_wmv,model/riscv_mem.sail:187));(BE_aux(BE_wmvt,model/riscv_mem.sail:187));(BE_aux(BE_rreg,model/riscv_mem.sail:187));(BE_aux(BE_wreg,model/riscv_mem.sail:187));(BE_aux(BE_escape,model/riscv_mem.sail:187))]),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("mem_write_value_meta"),model/riscv_mem.sail:188),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("paddr"),model/riscv_mem.sail:188)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_mem.sail:188)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_mem.sail:188)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("ext_acc"),model/riscv_mem.sail:188)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)));(P_aux(P_id(Id_aux(Id("meta"),model/riscv_mem.sail:188)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)));(P_aux(P_id(Id_aux(Id("aq"),model/riscv_mem.sail:188)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5107#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rl"),model/riscv_mem.sail:188)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("con"),model/riscv_mem.sail:188)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5107#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),Unknown)),Unknown))]),Unknown))]),model/riscv_mem.sail:188-203)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("rvfi_write"),model/riscv_mem.sail:189),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:189)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:189)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_mem.sail:189)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:150)),model/riscv_mem.sail:150)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_id(Id_aux(Id("rl"),model/riscv_mem.sail:190)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("con"),model/riscv_mem.sail:190)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:26),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26))]),../sail/lib/flow.sail:26)));(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("is_aligned_addr"),model/riscv_mem.sail:190),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:190)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:190)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:19)),model/riscv_mem.sail:19)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5113#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5113#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5115#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5115#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_mem.sail:191),[(E_aux(E_app(Id_aux(Id("E_SAMO_Addr_Align"),model/riscv_mem.sail:191),[(E_aux(E_lit(L_aux(L_unit,model/riscv_mem.sail:191)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:187)),Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("aq"),model/riscv_mem.sail:192)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5107#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_mem.sail:192)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("con"),model/riscv_mem.sail:192)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5107#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:193)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:193)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:193)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5107#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("pmp_mem_write"),model/riscv_mem.sail:193),[(E_aux(E_id(Id_aux(Id("Write_plain"),model/riscv_mem.sail:193)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:193)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:193)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_mem.sail:193)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ext_acc"),model/riscv_mem.sail:193)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)));(E_aux(E_id(Id_aux(Id("meta"),model/riscv_mem.sail:193)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:172),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:194)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:194)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:194)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5107#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("pmp_mem_write"),model/riscv_mem.sail:194),[(E_aux(E_id(Id_aux(Id("Write_RISCV_release"),model/riscv_mem.sail:194)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:194)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:194)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_mem.sail:194)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ext_acc"),model/riscv_mem.sail:194)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)));(E_aux(E_id(Id_aux(Id("meta"),model/riscv_mem.sail:194)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:172),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:195)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:195)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:195)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5107#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("pmp_mem_write"),model/riscv_mem.sail:195),[(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional"),model/riscv_mem.sail:195)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:195)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:195)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_mem.sail:195)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ext_acc"),model/riscv_mem.sail:195)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)));(E_aux(E_id(Id_aux(Id("meta"),model/riscv_mem.sail:195)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:172),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:196)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:196)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:196)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5107#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("pmp_mem_write"),model/riscv_mem.sail:196),[(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional_release"),model/riscv_mem.sail:196)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:196)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:196)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_mem.sail:196)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ext_acc"),model/riscv_mem.sail:196)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)));(E_aux(E_id(Id_aux(Id("meta"),model/riscv_mem.sail:196)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:172),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:197)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:197)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:197)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5107#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("pmp_mem_write"),model/riscv_mem.sail:197),[(E_aux(E_id(Id_aux(Id("Write_RISCV_strong_release"),model/riscv_mem.sail:197)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:197)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:197)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_mem.sail:197)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ext_acc"),model/riscv_mem.sail:197)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)));(E_aux(E_id(Id_aux(Id("meta"),model/riscv_mem.sail:197)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:172),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:198)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:198)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:198)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5107#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("pmp_mem_write"),model/riscv_mem.sail:198),[(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional_strong_release"),model/riscv_mem.sail:198)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)));(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:198)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:198)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_mem.sail:198)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ext_acc"),model/riscv_mem.sail:198)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)));(E_aux(E_id(Id_aux(Id("meta"),model/riscv_mem.sail:198)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:172),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:172)),model/riscv_mem.sail:172)),model/riscv_mem.sail:172))]),model/riscv_mem.sail:172))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:200)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:200)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:200)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5107#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_throw(E_aux(E_app(Id_aux(Id("Error_not_implemented"),model/riscv_mem.sail:200),[(E_aux(E_lit(L_aux(L_string("store.aq"),model/riscv_mem.sail:200)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("exception"),model/riscv_types.sail:240),[]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:187),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187))]),model/riscv_mem.sail:187))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:201)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_mem.sail:201)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_mem.sail:201)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5107#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_throw(E_aux(E_app(Id_aux(Id("Error_not_implemented"),model/riscv_mem.sail:201),[(E_aux(E_lit(L_aux(L_string("sc.aq"),model/riscv_mem.sail:201)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("exception"),model/riscv_types.sail:240),[]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:187),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187))]),model/riscv_mem.sail:187))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:187),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187))]),model/riscv_mem.sail:187))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:187),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187))]),model/riscv_mem.sail:187)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:187),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187))]),model/riscv_mem.sail:187))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:187),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5107#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5108#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5109#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:187),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187))]),model/riscv_mem.sail:187),Effect_aux(Effect_set([(BE_aux(BE_wmv,model/riscv_mem.sail:187));(BE_aux(BE_wmvt,model/riscv_mem.sail:187));(BE_aux(BE_rreg,model/riscv_mem.sail:187));(BE_aux(BE_wreg,model/riscv_mem.sail:187));(BE_aux(BE_escape,model/riscv_mem.sail:187))]),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("mem_write_value"),model/riscv_mem.sail:206),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_mem.sail:206),Kid_aux(Var("'n"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_mem.sail:206),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206),Nexp_aux(Nexp_id(Id_aux(Id("max_mem_access"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_mem.sail:206),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:206),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206),Effect_aux(Effect_set([(BE_aux(BE_wmv,model/riscv_mem.sail:206));(BE_aux(BE_wmvt,model/riscv_mem.sail:206));(BE_aux(BE_rreg,model/riscv_mem.sail:206));(BE_aux(BE_wreg,model/riscv_mem.sail:206));(BE_aux(BE_escape,model/riscv_mem.sail:206))]),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("mem_write_value"),model/riscv_mem.sail:207),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("paddr"),model/riscv_mem.sail:207)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_mem.sail:207)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_mem.sail:207)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:206),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("aq"),model/riscv_mem.sail:207)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5122#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rl"),model/riscv_mem.sail:207)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5123#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("con"),model/riscv_mem.sail:207)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5124#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:206),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5122#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5123#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5124#"),Unknown)),Unknown)),Unknown))]),Unknown))]),model/riscv_mem.sail:207-208)),E_aux(E_app(Id_aux(Id("mem_write_value_meta"),model/riscv_mem.sail:208),[(E_aux(E_id(Id_aux(Id("paddr"),model/riscv_mem.sail:208)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_mem.sail:208)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_mem.sail:208)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:206),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("default_write_acc"),model/riscv_mem.sail:208)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)));(E_aux(E_id(Id_aux(Id("default_meta"),model/riscv_mem.sail:208)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude_mem_metadata.sail:5)),model/prelude_mem_metadata.sail:5)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_mem.sail:208)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5122#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_mem.sail:208)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5123#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("con"),model/riscv_mem.sail:208)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5124#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:187),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:187)),model/riscv_mem.sail:187)),model/riscv_mem.sail:187))]),model/riscv_mem.sail:187))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:206),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5122#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5123#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5124#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206),Effect_aux(Effect_set([(BE_aux(BE_wmv,model/riscv_mem.sail:206));(BE_aux(BE_wmvt,model/riscv_mem.sail:206));(BE_aux(BE_rreg,model/riscv_mem.sail:206));(BE_aux(BE_wreg,model/riscv_mem.sail:206));(BE_aux(BE_escape,model/riscv_mem.sail:206))]),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)))]),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_PTE_Bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_PTE_Bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("PTE_Bits_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_PTE_Bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_PTE_Bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("PTE_Bits_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_PTE_Bits_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_PTE_Bits_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_PTE_Bits_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_PTE_Bits_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_PTE_Bits_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_PTE_Bits_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("PTE_Bits_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_PTE_Bits_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_PTE_Bits_bits"),:1));(Id_aux(Id("_set_PTE_Bits_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_PTE_Bits_D"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_PTE_Bits_D"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(7),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_PTE_Bits_D"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_PTE_Bits_D"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_PTE_Bits_D"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_PTE_Bits_D"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("PTE_Bits_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_D"),:1),[(Id_aux(Id("_update_PTE_Bits_D"),:1))]));(DEF_overload(Id_aux(Id("_mod_D"),:1),[(Id_aux(Id("_get_PTE_Bits_D"),:1));(Id_aux(Id("_set_PTE_Bits_D"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_PTE_Bits_A"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_PTE_Bits_A"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(6),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(6),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(6),Unknown),Nexp_aux(Nexp_constant(6),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_PTE_Bits_A"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_PTE_Bits_A"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(6),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(6),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_PTE_Bits_A"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_PTE_Bits_A"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("PTE_Bits_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(6),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(6),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_A"),:1),[(Id_aux(Id("_update_PTE_Bits_A"),:1))]));(DEF_overload(Id_aux(Id("_mod_A"),:1),[(Id_aux(Id("_get_PTE_Bits_A"),:1));(Id_aux(Id("_set_PTE_Bits_A"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_PTE_Bits_G"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_PTE_Bits_G"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(5),Unknown),Nexp_aux(Nexp_constant(5),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_PTE_Bits_G"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_PTE_Bits_G"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_PTE_Bits_G"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_PTE_Bits_G"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("PTE_Bits_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(5),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_G"),:1),[(Id_aux(Id("_update_PTE_Bits_G"),:1))]));(DEF_overload(Id_aux(Id("_mod_G"),:1),[(Id_aux(Id("_get_PTE_Bits_G"),:1));(Id_aux(Id("_set_PTE_Bits_G"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_PTE_Bits_U"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_PTE_Bits_U"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_PTE_Bits_U"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_PTE_Bits_U"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_PTE_Bits_U"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_PTE_Bits_U"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("PTE_Bits_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(4),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_U"),:1),[(Id_aux(Id("_update_PTE_Bits_U"),:1))]));(DEF_overload(Id_aux(Id("_mod_U"),:1),[(Id_aux(Id("_get_PTE_Bits_U"),:1));(Id_aux(Id("_set_PTE_Bits_U"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_PTE_Bits_X"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_PTE_Bits_X"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(3),Unknown),Nexp_aux(Nexp_constant(3),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_PTE_Bits_X"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_PTE_Bits_X"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_PTE_Bits_X"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_PTE_Bits_X"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("PTE_Bits_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(3),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(3),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_X"),:1),[(Id_aux(Id("_update_PTE_Bits_X"),:1))]));(DEF_overload(Id_aux(Id("_mod_X"),:1),[(Id_aux(Id("_get_PTE_Bits_X"),:1));(Id_aux(Id("_set_PTE_Bits_X"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_PTE_Bits_W"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_PTE_Bits_W"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(2),Unknown),Nexp_aux(Nexp_constant(2),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_PTE_Bits_W"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_PTE_Bits_W"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_PTE_Bits_W"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_PTE_Bits_W"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("PTE_Bits_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(2),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(2),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_W"),:1),[(Id_aux(Id("_update_PTE_Bits_W"),:1))]));(DEF_overload(Id_aux(Id("_mod_W"),:1),[(Id_aux(Id("_get_PTE_Bits_W"),:1));(Id_aux(Id("_set_PTE_Bits_W"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_PTE_Bits_R"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_PTE_Bits_R"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_PTE_Bits_R"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_PTE_Bits_R"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_PTE_Bits_R"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_PTE_Bits_R"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("PTE_Bits_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_R"),:1),[(Id_aux(Id("_update_PTE_Bits_R"),:1))]));(DEF_overload(Id_aux(Id("_mod_R"),:1),[(Id_aux(Id("_get_PTE_Bits_R"),:1));(Id_aux(Id("_set_PTE_Bits_R"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_PTE_Bits_V"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_PTE_Bits_V"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_PTE_Bits_V"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_PTE_Bits_V"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("PTE_Bits_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_PTE_Bits_V"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_PTE_Bits_V"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("PTE_Bits_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),Id_aux(Id("PTE_Bits_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_V"),:1),[(Id_aux(Id("_update_PTE_Bits_V"),:1))]));(DEF_overload(Id_aux(Id("_mod_V"),:1),[(Id_aux(Id("_get_PTE_Bits_V"),:1));(Id_aux(Id("_set_PTE_Bits_V"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("isPTEPtr"),model/riscv_pte.sail:21),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("pteAttribs"),model/riscv_pte.sail:21)),model/riscv_pte.sail:21));(Typ_aux(Typ_id(Id_aux(Id("extPte"),model/riscv_pte.sail:21)),model/riscv_pte.sail:21))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:21)),model/riscv_pte.sail:21),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:21)),model/riscv_pte.sail:21)),model/riscv_pte.sail:21),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("isPTEPtr"),model/riscv_pte.sail:21),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("pteAttribs"),model/riscv_pte.sail:21)),model/riscv_pte.sail:21),P_aux(P_id(Id_aux(Id("p"),model/riscv_pte.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pte.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pte.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("extPte"),model/riscv_pte.sail:21)),model/riscv_pte.sail:21),P_aux(P_id(Id_aux(Id("ext"),model/riscv_pte.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pte.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:21-24)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("a"),model/riscv_pte.sail:22)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_PTE_Bits"),model/riscv_pte.sail:22),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pte.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_R"),:1),[(E_aux(E_id(Id_aux(Id("a"),model/riscv_pte.sail:23)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_pte.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_W"),:1),[(E_aux(E_id(Id_aux(Id("a"),model/riscv_pte.sail:23)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_pte.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_X"),:1),[(E_aux(E_id(Id_aux(Id("a"),model/riscv_pte.sail:23)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_pte.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:21)),model/riscv_pte.sail:21))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:21)),model/riscv_pte.sail:21)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:21)),model/riscv_pte.sail:21))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pte.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:21)),model/riscv_pte.sail:21),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("isInvalidPTE"),model/riscv_pte.sail:26),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("pteAttribs"),model/riscv_pte.sail:26)),model/riscv_pte.sail:26));(Typ_aux(Typ_id(Id_aux(Id("extPte"),model/riscv_pte.sail:26)),model/riscv_pte.sail:26))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:26)),model/riscv_pte.sail:26),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:26)),model/riscv_pte.sail:26)),model/riscv_pte.sail:26),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("isInvalidPTE"),model/riscv_pte.sail:26),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("pteAttribs"),model/riscv_pte.sail:26)),model/riscv_pte.sail:26),P_aux(P_id(Id_aux(Id("p"),model/riscv_pte.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pte.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pte.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("extPte"),model/riscv_pte.sail:26)),model/riscv_pte.sail:26),P_aux(P_id(Id_aux(Id("ext"),model/riscv_pte.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pte.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:26-29)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("a"),model/riscv_pte.sail:27)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_PTE_Bits"),model/riscv_pte.sail:27),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pte.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_V"),:1),[(E_aux(E_id(Id_aux(Id("a"),model/riscv_pte.sail:28)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_pte.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_W"),:1),[(E_aux(E_id(Id_aux(Id("a"),model/riscv_pte.sail:28)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_R"),:1),[(E_aux(E_id(Id_aux(Id("a"),model/riscv_pte.sail:28)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_pte.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5181#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5185#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5181#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex5185#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:26)),model/riscv_pte.sail:26))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:26)),model/riscv_pte.sail:26)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:26)),model/riscv_pte.sail:26))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_pte.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:26)),model/riscv_pte.sail:26),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_PTE_Check"),model/riscv_pte.sail:31),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),model/riscv_pte.sail:31),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:31)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_PTE_Check"),model/riscv_pte.sail:31),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_ptw"),model/riscv_pte.sail:32)),model/riscv_pte.sail:32),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("PTE_Check_Success"),model/riscv_pte.sail:32),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_app(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:31),[]),Unknown)));(E_aux(E_app(Id_aux(Id("PTE_Check_Failure"),model/riscv_pte.sail:33),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_app(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:31),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:31)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:31)),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:31)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:31)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("to_pte_check"),model/riscv_pte.sail:36),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36))],Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36)),model/riscv_pte.sail:36),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("to_pte_check"),model/riscv_pte.sail:36),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36),P_aux(P_id(Id_aux(Id("b"),model/riscv_pte.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5198#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36)),E_aux(E_if(E_aux(E_id(Id_aux(Id("b"),model/riscv_pte.sail:37)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5198#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("PTE_Check_Success"),model/riscv_pte.sail:37),[(E_aux(E_lit(L_aux(L_unit,model/riscv_pte.sail:37)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:31),[]),Unknown)),E_aux(E_app(Id_aux(Id("PTE_Check_Failure"),model/riscv_pte.sail:37),[(E_aux(E_lit(L_aux(L_unit,model/riscv_pte.sail:37)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:31),[]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36))],Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("checkPTEPermission"),model/riscv_pte.sail:43),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("extPte"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("ext_ptw"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))],Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_types.sail:248))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)),model/riscv_pte.sail:43),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("checkPTEPermission"),model/riscv_pte.sail:43),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43),P_aux(P_id(Id_aux(Id("ac"),model/riscv_pte.sail:43)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43))),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43),P_aux(P_id(Id_aux(Id("priv"),model/riscv_pte.sail:43)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43),P_aux(P_id(Id_aux(Id("mxr"),model/riscv_pte.sail:43)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43),P_aux(P_id(Id_aux(Id("do_sum"),model/riscv_pte.sail:43)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5205#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43),P_aux(P_id(Id_aux(Id("p"),model/riscv_pte.sail:43)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("extPte"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43),P_aux(P_id(Id_aux(Id("ext"),model/riscv_pte.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_ptw"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43),P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_pte.sail:43)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_pte.sail:43-57)),E_aux(E_block([(E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("ac"),model/riscv_pte.sail:44)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_pte.sail:44)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Read"),model/riscv_pte.sail:45),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_pte.sail:45)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:101)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43)));(P_aux(P_id(Id_aux(Id("User"),model/riscv_pte.sail:45)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))]),Unknown)),E_aux(E_app(Id_aux(Id("to_pte_check"),model/riscv_pte.sail:45),[(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_U"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:45)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_R"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:45)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_X"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:45)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_id(Id_aux(Id("mxr"),model/riscv_pte.sail:45)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5232#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5232#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5230#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5234#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5230#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5234#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5239#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5237#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5238#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5239#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5237#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5238#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Write"),model/riscv_pte.sail:46),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_pte.sail:46)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:102)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43)));(P_aux(P_id(Id_aux(Id("User"),model/riscv_pte.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))]),Unknown)),E_aux(E_app(Id_aux(Id("to_pte_check"),model/riscv_pte.sail:46),[(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_U"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:46)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:46)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_W"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:46)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:46)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("ReadWrite"),model/riscv_pte.sail:47),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_pte.sail:47)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:103)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43)));(P_aux(P_id(Id_aux(Id("User"),model/riscv_pte.sail:47)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))]),Unknown)),E_aux(E_app(Id_aux(Id("to_pte_check"),model/riscv_pte.sail:47),[(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_U"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:47)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:47)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_W"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:47)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:47)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_R"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:47)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:47)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_X"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:47)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:47)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_id(Id_aux(Id("mxr"),model/riscv_pte.sail:47)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5305#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5305#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5303#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5307#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5303#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5307#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5312#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5310#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5311#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5312#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5310#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5311#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5319#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5317#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5318#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5319#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5317#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5318#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Execute"),model/riscv_pte.sail:48),[(P_aux(P_lit(L_aux(L_unit,model/riscv_pte.sail:48)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43)));(P_aux(P_id(Id_aux(Id("User"),model/riscv_pte.sail:48)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))]),Unknown)),E_aux(E_app(Id_aux(Id("to_pte_check"),model/riscv_pte.sail:48),[(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_U"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:48)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:48)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_X"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:48)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:48)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Read"),model/riscv_pte.sail:50),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_pte.sail:50)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:101)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43)));(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_pte.sail:50)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))]),Unknown)),E_aux(E_app(Id_aux(Id("to_pte_check"),model/riscv_pte.sail:50),[(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_U"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:50)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_pte.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_id(Id_aux(Id("do_sum"),model/riscv_pte.sail:50)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5205#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5343#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5343#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex5205#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_R"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:50)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_X"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:50)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_id(Id_aux(Id("mxr"),model/riscv_pte.sail:50)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5352#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5352#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5350#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5354#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5350#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5354#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5345#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5357#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5358#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5345#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex5205#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5357#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5358#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Write"),model/riscv_pte.sail:51),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_pte.sail:51)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:102)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43)));(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_pte.sail:51)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))]),Unknown)),E_aux(E_app(Id_aux(Id("to_pte_check"),model/riscv_pte.sail:51),[(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_U"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:51)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_pte.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_id(Id_aux(Id("do_sum"),model/riscv_pte.sail:51)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5205#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5366#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5366#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex5205#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_W"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:51)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5370#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5368#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5370#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5368#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex5205#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("ReadWrite"),model/riscv_pte.sail:52),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_pte.sail:52)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:103)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43)));(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_pte.sail:52)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))]),Unknown)),E_aux(E_app(Id_aux(Id("to_pte_check"),model/riscv_pte.sail:52),[(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_U"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:52)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_pte.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_id(Id_aux(Id("do_sum"),model/riscv_pte.sail:52)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5205#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5409#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5409#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex5205#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_W"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:52)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_R"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:52)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_X"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:52)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_id(Id_aux(Id("mxr"),model/riscv_pte.sail:52)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5432#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5432#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5430#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5434#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5430#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5434#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5439#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5437#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5438#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5439#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5437#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5438#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5446#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5411#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5444#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5445#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5446#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5411#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex5205#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5444#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5445#"),Unknown)),Unknown),NC_aux(NC_var(Kid_aux(Var("'ex5203#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Execute"),model/riscv_pte.sail:53),[(P_aux(P_lit(L_aux(L_unit,model/riscv_pte.sail:53)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43)));(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_pte.sail:53)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))]),Unknown)),E_aux(E_app(Id_aux(Id("to_pte_check"),model/riscv_pte.sail:53),[(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_U"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:53)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_pte.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_X"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:53)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:36)),model/riscv_pte.sail:36))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43)));(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_pte.sail:55)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))]),Unknown)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_pte.sail:55),[(E_aux(E_lit(L_aux(L_string("m-mode mem perm check"),model/riscv_pte.sail:55)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:43)),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:43),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:43))]),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43));(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))],Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("update_PTE_Bits"),model/riscv_pte.sail:59),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59));(Typ_aux(Typ_id(Id_aux(Id("extPte"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_id(Id_aux(Id("extPte"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_id(Id_aux(Id("extPte"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("update_PTE_Bits"),model/riscv_pte.sail:59),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59),P_aux(P_id(Id_aux(Id("p"),model/riscv_pte.sail:59)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59)));(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59),P_aux(P_id(Id_aux(Id("a"),model/riscv_pte.sail:59)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59))),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("extPte"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59),P_aux(P_id(Id_aux(Id("ext"),model/riscv_pte.sail:59)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59-67)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("update_d"),model/riscv_pte.sail:60)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'_update_d0"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'_update_d1"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_update_d2"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("a"),model/riscv_pte.sail:60)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)));(E_aux(E_app(Id_aux(Id("Write"),model/riscv_pte.sail:60),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_pte.sail:60)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)));(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("a"),model/riscv_pte.sail:60)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)));(E_aux(E_app(Id_aux(Id("ReadWrite"),model/riscv_pte.sail:60),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_pte.sail:60)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5476#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5477#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5476#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex5477#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_D"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:60)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_pte.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5483#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5480#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5481#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5483#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5480#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex5481#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("update_a"),model/riscv_pte.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5484#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_A"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:61)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_pte.sail:61)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_id(Id_aux(Id("update_d"),model/riscv_pte.sail:62)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'_update_d0"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'_update_d1"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_update_d2"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("update_a"),model/riscv_pte.sail:62)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5484#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:26),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'_update_d0"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'_update_d1"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_update_d2"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex5484#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26))]),../sail/lib/flow.sail:26)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("np"),model/riscv_pte.sail:63)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_PTE_Bits_A"),:1),[(E_aux(E_id(Id_aux(Id("p"),model/riscv_pte.sail:63)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:63)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("np"),model/riscv_pte.sail:64)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_if(E_aux(E_id(Id_aux(Id("update_d"),model/riscv_pte.sail:64)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'_update_d0"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'_update_d1"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_update_d2"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("_update_PTE_Bits_D"),:1),[(E_aux(E_id(Id_aux(Id("np"),model/riscv_pte.sail:64)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_pte.sail:64)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_id(Id_aux(Id("np"),model/riscv_pte.sail:64)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("Some"),model/riscv_pte.sail:65),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("np"),model/riscv_pte.sail:65)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(E_aux(E_id(Id_aux(Id("ext"),model/riscv_pte.sail:65)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)),E_aux(E_app(Id_aux(Id("None"),model/riscv_pte.sail:66),[(E_aux(E_lit(L_aux(L_unit,model/riscv_pte.sail:66)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_PTW_Error"),model/riscv_ptw.sail:3),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),model/riscv_ptw.sail:3),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_PTW_Error"),model/riscv_ptw.sail:3),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_ptw_error"),model/riscv_ptw.sail:9)),model/riscv_ptw.sail:9),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:15)),model/riscv_types_ext.sail:15))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:15)),model/riscv_types_ext.sail:15)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:15)),model/riscv_types_ext.sail:15))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ptw.sail:4)),model/riscv_ptw.sail:4),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ptw.sail:4)),model/riscv_ptw.sail:4))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ptw.sail:4)),model/riscv_ptw.sail:4)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ptw.sail:4)),model/riscv_ptw.sail:4))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("PTW_Access"),model/riscv_ptw.sail:4),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ptw.sail:4)),model/riscv_ptw.sail:4)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_app(Id_aux(Id("PTW_Invalid_PTE"),model/riscv_ptw.sail:5),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ptw.sail:4)),model/riscv_ptw.sail:4)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_app(Id_aux(Id("PTW_No_Permission"),model/riscv_ptw.sail:6),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ptw.sail:4)),model/riscv_ptw.sail:4)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_app(Id_aux(Id("PTW_Misaligned"),model/riscv_ptw.sail:7),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ptw.sail:4)),model/riscv_ptw.sail:4)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_app(Id_aux(Id("PTW_PTE_Update"),model/riscv_ptw.sail:8),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ptw.sail:4)),model/riscv_ptw.sail:4)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_app(Id_aux(Id("PTW_Ext_Error"),model/riscv_ptw.sail:9),[(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:15)),model/riscv_types_ext.sail:15)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3)),:1))),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ptw_error_to_str"),model/riscv_ptw.sail:12),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12),Effect_aux(Effect_set([]),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ptw_error_to_str"),model/riscv_ptw.sail:13),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("e"),model/riscv_ptw.sail:13)),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12)),E_aux(E_case(E_aux(E_id(Id_aux(Id("e"),model/riscv_ptw.sail:14)),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTW_Access"),model/riscv_ptw.sail:15),[(P_aux(P_lit(L_aux(L_unit,model/riscv_ptw.sail:15)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12)),E_aux(E_lit(L_aux(L_string("mem-access-error"),model/riscv_ptw.sail:15)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTW_Invalid_PTE"),model/riscv_ptw.sail:16),[(P_aux(P_lit(L_aux(L_unit,model/riscv_ptw.sail:16)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12)),E_aux(E_lit(L_aux(L_string("invalid-pte"),model/riscv_ptw.sail:16)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTW_No_Permission"),model/riscv_ptw.sail:17),[(P_aux(P_lit(L_aux(L_unit,model/riscv_ptw.sail:17)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12)),E_aux(E_lit(L_aux(L_string("no-permission"),model/riscv_ptw.sail:17)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTW_Misaligned"),model/riscv_ptw.sail:18),[(P_aux(P_lit(L_aux(L_unit,model/riscv_ptw.sail:18)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12)),E_aux(E_lit(L_aux(L_string("misaligned-superpage"),model/riscv_ptw.sail:18)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTW_PTE_Update"),model/riscv_ptw.sail:19),[(P_aux(P_lit(L_aux(L_unit,model/riscv_ptw.sail:19)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12)),E_aux(E_lit(L_aux(L_string("pte-update-needed"),model/riscv_ptw.sail:19)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTW_Ext_Error"),model/riscv_ptw.sail:20),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_ptw.sail:20)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:15)),model/riscv_types_ext.sail:15)))]),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12)),E_aux(E_lit(L_aux(L_string("extension-error"),model/riscv_ptw.sail:20)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12),Effect_aux(Effect_set([]),model/riscv_ptw.sail:12)),model/riscv_ptw.sail:12)))]),None)));(DEF_overload(Id_aux(Id("to_str"),model/riscv_ptw.sail:23),[(Id_aux(Id("ptw_error_to_str"),model/riscv_ptw.sail:23))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("translationException"),model/riscv_ptw.sail:26),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26));(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))],Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("translationException"),model/riscv_ptw.sail:26),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ext_access_type"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26),P_aux(P_id(Id_aux(Id("a"),model/riscv_ptw.sail:26)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26))),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26),P_aux(P_id(Id_aux(Id("f"),model/riscv_ptw.sail:26)),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26));(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26-42)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_ptw.sail:27)),model/riscv_ptw.sail:27),P_aux(P_id(Id_aux(Id("e"),model/riscv_ptw.sail:27)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_ptw.sail:27)),model/riscv_ptw.sail:27))),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_ptw.sail:27)),model/riscv_ptw.sail:27)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("a"),model/riscv_ptw.sail:28)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26)));(E_aux(E_id(Id_aux(Id("f"),model/riscv_ptw.sail:28)),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26));(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26)));(P_aux(P_app(Id_aux(Id("PTW_Ext_Error"),model/riscv_ptw.sail:29),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_ptw.sail:29)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:15)),model/riscv_types_ext.sail:15)))]),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26));(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))]),Unknown)),E_aux(E_app(Id_aux(Id("E_Extension"),model/riscv_ptw.sail:29),[(E_aux(E_app(Id_aux(Id("ext_translate_exception"),model/riscv_ptw.sail:29),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_ptw.sail:29)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:15)),model/riscv_types_ext.sail:15)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:18)),model/riscv_types_ext.sail:18)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("ReadWrite"),model/riscv_ptw.sail:30),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_ptw.sail:30)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:103)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26)));(P_aux(P_app(Id_aux(Id("PTW_Access"),model/riscv_ptw.sail:30),[(P_aux(P_lit(L_aux(L_unit,model/riscv_ptw.sail:30)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26));(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))]),Unknown)),E_aux(E_app(Id_aux(Id("E_SAMO_Access_Fault"),model/riscv_ptw.sail:30),[(E_aux(E_lit(L_aux(L_unit,model/riscv_ptw.sail:30)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("ReadWrite"),model/riscv_ptw.sail:31),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_ptw.sail:31)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:103)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26));(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))]),Unknown)),E_aux(E_app(Id_aux(Id("E_SAMO_Page_Fault"),model/riscv_ptw.sail:31),[(E_aux(E_lit(L_aux(L_unit,model/riscv_ptw.sail:31)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Read"),model/riscv_ptw.sail:32),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_ptw.sail:32)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:101)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26)));(P_aux(P_app(Id_aux(Id("PTW_Access"),model/riscv_ptw.sail:32),[(P_aux(P_lit(L_aux(L_unit,model/riscv_ptw.sail:32)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26));(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))]),Unknown)),E_aux(E_app(Id_aux(Id("E_Load_Access_Fault"),model/riscv_ptw.sail:32),[(E_aux(E_lit(L_aux(L_unit,model/riscv_ptw.sail:32)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Read"),model/riscv_ptw.sail:33),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_ptw.sail:33)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:101)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26));(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))]),Unknown)),E_aux(E_app(Id_aux(Id("E_Load_Page_Fault"),model/riscv_ptw.sail:33),[(E_aux(E_lit(L_aux(L_unit,model/riscv_ptw.sail:33)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Write"),model/riscv_ptw.sail:34),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_ptw.sail:34)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:102)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26)));(P_aux(P_app(Id_aux(Id("PTW_Access"),model/riscv_ptw.sail:34),[(P_aux(P_lit(L_aux(L_unit,model/riscv_ptw.sail:34)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26));(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))]),Unknown)),E_aux(E_app(Id_aux(Id("E_SAMO_Access_Fault"),model/riscv_ptw.sail:34),[(E_aux(E_lit(L_aux(L_unit,model/riscv_ptw.sail:34)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Write"),model/riscv_ptw.sail:35),[(P_aux(P_id(Id_aux(Id("Data"),model/riscv_ptw.sail:35)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_types.sail:102)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26));(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))]),Unknown)),E_aux(E_app(Id_aux(Id("E_SAMO_Page_Fault"),model/riscv_ptw.sail:35),[(E_aux(E_lit(L_aux(L_unit,model/riscv_ptw.sail:35)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Execute"),model/riscv_ptw.sail:36),[(P_aux(P_lit(L_aux(L_unit,model/riscv_ptw.sail:36)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26)));(P_aux(P_app(Id_aux(Id("PTW_Access"),model/riscv_ptw.sail:36),[(P_aux(P_lit(L_aux(L_unit,model/riscv_ptw.sail:36)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26));(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))]),Unknown)),E_aux(E_app(Id_aux(Id("E_Fetch_Access_Fault"),model/riscv_ptw.sail:36),[(E_aux(E_lit(L_aux(L_unit,model/riscv_ptw.sail:36)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Execute"),model/riscv_ptw.sail:37),[(P_aux(P_lit(L_aux(L_unit,model/riscv_ptw.sail:37)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26));(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))]),Unknown)),E_aux(E_app(Id_aux(Id("E_Fetch_Page_Fault"),model/riscv_ptw.sail:37),[(E_aux(E_lit(L_aux(L_unit,model/riscv_ptw.sail:37)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_ptw.sail:27)),model/riscv_ptw.sail:27))),None),E_aux(E_block([(E_aux(E_id(Id_aux(Id("e"),model/riscv_ptw.sail:40)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_ptw.sail:27)),model/riscv_ptw.sail:27)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_ptw.sail:26),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_ptw.sail:26))]),model/riscv_ptw.sail:26));(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26))],Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("PAGESIZE_BITS"),model/riscv_vmem_common.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(12),model/riscv_vmem_common.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown))),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("curAsid32"),model/riscv_vmem_common.sail:22),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_vmem_common.sail:22),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_vmem_common.sail:22)),model/riscv_vmem_common.sail:22))]),model/riscv_vmem_common.sail:22))],Typ_aux(Typ_id(Id_aux(Id("asid32"),model/riscv_vmem_common.sail:22)),model/riscv_vmem_common.sail:22),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("asid32"),model/riscv_vmem_common.sail:22)),model/riscv_vmem_common.sail:22)),model/riscv_vmem_common.sail:22),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("curAsid32"),model/riscv_vmem_common.sail:22),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_vmem_common.sail:22),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_vmem_common.sail:22)),model/riscv_vmem_common.sail:22))]),model/riscv_vmem_common.sail:22),P_aux(P_id(Id_aux(Id("satp"),model/riscv_vmem_common.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_vmem_common.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_vmem_common.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_vmem_common.sail:23)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Satp32"),model/riscv_vmem_common.sail:23),[(E_aux(E_id(Id_aux(Id("satp"),model/riscv_vmem_common.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_vmem_common.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("_get_Satp32_Asid"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_vmem_common.sail:24)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/riscv_vmem_common.sail:20)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/riscv_vmem_common.sail:20)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/riscv_vmem_common.sail:20)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_vmem_common.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),model/riscv_vmem_common.sail:20)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("curPTB32"),model/riscv_vmem_common.sail:28),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_vmem_common.sail:28),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_vmem_common.sail:28)),model/riscv_vmem_common.sail:28))]),model/riscv_vmem_common.sail:28))],Typ_aux(Typ_id(Id_aux(Id("paddr32"),model/riscv_vmem_common.sail:28)),model/riscv_vmem_common.sail:28),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("paddr32"),model/riscv_vmem_common.sail:28)),model/riscv_vmem_common.sail:28)),model/riscv_vmem_common.sail:28),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("curPTB32"),model/riscv_vmem_common.sail:28),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_vmem_common.sail:28),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_vmem_common.sail:28)),model/riscv_vmem_common.sail:28))]),model/riscv_vmem_common.sail:28),P_aux(P_id(Id_aux(Id("satp"),model/riscv_vmem_common.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_vmem_common.sail:28)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_vmem_common.sail:28)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Satp32"),model/riscv_vmem_common.sail:29)),model/riscv_vmem_common.sail:29),P_aux(P_id(Id_aux(Id("s"),model/riscv_vmem_common.sail:29)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),model/riscv_vmem_common.sail:29)),model/riscv_vmem_common.sail:29))),Typ_aux(Typ_id(Id_aux(Id("Satp32"),model/riscv_vmem_common.sail:29)),model/riscv_vmem_common.sail:29)),E_aux(E_app(Id_aux(Id("Mk_Satp32"),model/riscv_vmem_common.sail:29),[(E_aux(E_id(Id_aux(Id("satp"),model/riscv_vmem_common.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_vmem_common.sail:28)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("shiftl"),model/riscv_vmem_common.sail:30),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_common.sail:30),[(E_aux(E_lit(L_aux(L_num(34),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Satp32_PPN"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_vmem_common.sail:30)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),model/riscv_vmem_common.sail:29)),model/riscv_vmem_common.sail:29)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),model/riscv_vmem_common.sail:16)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("PAGESIZE_BITS"),model/riscv_vmem_common.sail:30)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),model/riscv_vmem_common.sail:16)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),model/riscv_vmem_common.sail:16)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),model/riscv_vmem_common.sail:16)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),model/riscv_vmem_common.sail:16)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_vmem_common.sail:28)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),model/riscv_vmem_common.sail:16)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("SV32_LEVEL_BITS"),model/riscv_vmem_common.sail:35)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(10),model/riscv_vmem_common.sail:35)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("SV32_LEVELS"),model/riscv_vmem_common.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(2),model/riscv_vmem_common.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("PTE32_LOG_SIZE"),model/riscv_vmem_common.sail:37)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(2),model/riscv_vmem_common.sail:37)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("PTE32_SIZE"),model/riscv_vmem_common.sail:38)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(4),model/riscv_vmem_common.sail:38)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown))),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_SV32_Vaddr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_SV32_Vaddr"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV32_Vaddr_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_SV32_Vaddr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_SV32_Vaddr"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV32_Vaddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV32_Vaddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV32_Vaddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),Id_aux(Id("SV32_Vaddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV32_Vaddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV32_Vaddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(31),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV32_Vaddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV32_Vaddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV32_Vaddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),Id_aux(Id("SV32_Vaddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_SV32_Vaddr_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_SV32_Vaddr_bits"),:1));(Id_aux(Id("_set_SV32_Vaddr_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV32_Vaddr_VPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV32_Vaddr_VPNi"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),Id_aux(Id("SV32_Vaddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(12),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV32_Vaddr_VPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV32_Vaddr_VPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(19),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(19),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV32_Vaddr_VPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV32_Vaddr_VPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV32_Vaddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),Id_aux(Id("SV32_Vaddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(19),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(19),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(19),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_VPNi"),:1),[(Id_aux(Id("_update_SV32_Vaddr_VPNi"),:1))]));(DEF_overload(Id_aux(Id("_mod_VPNi"),:1),[(Id_aux(Id("_get_SV32_Vaddr_VPNi"),:1));(Id_aux(Id("_set_SV32_Vaddr_VPNi"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV32_Vaddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV32_Vaddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),Id_aux(Id("SV32_Vaddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV32_Vaddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV32_Vaddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV32_Vaddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV32_Vaddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV32_Vaddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1)),Id_aux(Id("SV32_Vaddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_PgOfs"),:1),[(Id_aux(Id("_update_SV32_Vaddr_PgOfs"),:1))]));(DEF_overload(Id_aux(Id("_mod_PgOfs"),:1),[(Id_aux(Id("_get_SV32_Vaddr_PgOfs"),:1));(Id_aux(Id("_set_SV32_Vaddr_PgOfs"),:1))]));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_SV32_Paddr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_SV32_Paddr"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV32_Paddr_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_SV32_Paddr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_SV32_Paddr"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV32_Paddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(33),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(33),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV32_Paddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV32_Paddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),Id_aux(Id("SV32_Paddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(33),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(33),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV32_Paddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV32_Paddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(33),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(33),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(33),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV32_Paddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV32_Paddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV32_Paddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),Id_aux(Id("SV32_Paddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(33),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(33),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(33),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_SV32_Paddr_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_SV32_Paddr_bits"),:1));(Id_aux(Id("_set_SV32_Paddr_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV32_Paddr_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV32_Paddr_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),Id_aux(Id("SV32_Paddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(33),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(33),Unknown),Nexp_aux(Nexp_constant(12),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV32_Paddr_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV32_Paddr_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(33),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(21),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(21),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV32_Paddr_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV32_Paddr_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV32_Paddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),Id_aux(Id("SV32_Paddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(33),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(33),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(21),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(21),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_PPNi"),:1),[(Id_aux(Id("_update_SV32_Paddr_PPNi"),:1))]));(DEF_overload(Id_aux(Id("_mod_PPNi"),:1),[(Id_aux(Id("_get_SV32_Paddr_PPNi"),:1));(Id_aux(Id("_set_SV32_Paddr_PPNi"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV32_Paddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV32_Paddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),Id_aux(Id("SV32_Paddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV32_Paddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV32_Paddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV32_Paddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV32_Paddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV32_Paddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1)),Id_aux(Id("SV32_Paddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(34),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_PgOfs"),:1),[(Id_aux(Id("_update_SV32_Paddr_PgOfs"),:1))]));(DEF_overload(Id_aux(Id("_mod_PgOfs"),:1),[(Id_aux(Id("_get_SV32_Paddr_PgOfs"),:1));(Id_aux(Id("_set_SV32_Paddr_PgOfs"),:1))]));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_SV32_PTE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_SV32_PTE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV32_PTE_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_SV32_PTE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_SV32_PTE"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV32_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV32_PTE_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV32_PTE_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),Id_aux(Id("SV32_PTE_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV32_PTE_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV32_PTE_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(31),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV32_PTE_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV32_PTE_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV32_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),Id_aux(Id("SV32_PTE_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_SV32_PTE_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_SV32_PTE_bits"),:1));(Id_aux(Id("_set_SV32_PTE_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV32_PTE_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV32_PTE_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),Id_aux(Id("SV32_PTE_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(10),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV32_PTE_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV32_PTE_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(21),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(21),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV32_PTE_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV32_PTE_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV32_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),Id_aux(Id("SV32_PTE_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(31),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(21),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(21),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(22),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_PPNi"),:1),[(Id_aux(Id("_update_SV32_PTE_PPNi"),:1))]));(DEF_overload(Id_aux(Id("_mod_PPNi"),:1),[(Id_aux(Id("_get_SV32_PTE_PPNi"),:1));(Id_aux(Id("_set_SV32_PTE_PPNi"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV32_PTE_RSW"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV32_PTE_RSW"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),Id_aux(Id("SV32_PTE_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(9),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV32_PTE_RSW"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV32_PTE_RSW"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV32_PTE_RSW"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV32_PTE_RSW"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV32_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),Id_aux(Id("SV32_PTE_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_RSW"),:1),[(Id_aux(Id("_update_SV32_PTE_RSW"),:1))]));(DEF_overload(Id_aux(Id("_mod_RSW"),:1),[(Id_aux(Id("_get_SV32_PTE_RSW"),:1));(Id_aux(Id("_set_SV32_PTE_RSW"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV32_PTE_BITS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV32_PTE_BITS"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),Id_aux(Id("SV32_PTE_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV32_PTE_BITS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV32_PTE_BITS"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV32_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV32_PTE_BITS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV32_PTE_BITS"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV32_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1)),Id_aux(Id("SV32_PTE_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV32_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_BITS"),:1),[(Id_aux(Id("_update_SV32_PTE_BITS"),:1))]));(DEF_overload(Id_aux(Id("_mod_BITS"),:1),[(Id_aux(Id("_get_SV32_PTE_BITS"),:1));(Id_aux(Id("_set_SV32_PTE_BITS"),:1))]));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("curAsid64"),model/riscv_vmem_common.sail:78),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_vmem_common.sail:78),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_common.sail:78)),model/riscv_vmem_common.sail:78))]),model/riscv_vmem_common.sail:78))],Typ_aux(Typ_id(Id_aux(Id("asid64"),model/riscv_vmem_common.sail:78)),model/riscv_vmem_common.sail:78),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("asid64"),model/riscv_vmem_common.sail:78)),model/riscv_vmem_common.sail:78)),model/riscv_vmem_common.sail:78),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("curAsid64"),model/riscv_vmem_common.sail:78),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_vmem_common.sail:78),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_common.sail:78)),model/riscv_vmem_common.sail:78))]),model/riscv_vmem_common.sail:78),P_aux(P_id(Id_aux(Id("satp"),model/riscv_vmem_common.sail:78)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_common.sail:78)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_common.sail:78)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_vmem_common.sail:79)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Satp64"),model/riscv_vmem_common.sail:79),[(E_aux(E_id(Id_aux(Id("satp"),model/riscv_vmem_common.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_common.sail:78)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("_get_Satp64_Asid"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_vmem_common.sail:80)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_common.sail:78)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("curPTB64"),model/riscv_vmem_common.sail:84),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_vmem_common.sail:84),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_common.sail:84)),model/riscv_vmem_common.sail:84))]),model/riscv_vmem_common.sail:84))],Typ_aux(Typ_id(Id_aux(Id("paddr64"),model/riscv_vmem_common.sail:84)),model/riscv_vmem_common.sail:84),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("paddr64"),model/riscv_vmem_common.sail:84)),model/riscv_vmem_common.sail:84)),model/riscv_vmem_common.sail:84),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("curPTB64"),model/riscv_vmem_common.sail:84),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_vmem_common.sail:84),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_common.sail:84)),model/riscv_vmem_common.sail:84))]),model/riscv_vmem_common.sail:84),P_aux(P_id(Id_aux(Id("satp"),model/riscv_vmem_common.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_common.sail:84)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_common.sail:84)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_vmem_common.sail:85)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Satp64"),model/riscv_vmem_common.sail:85),[(E_aux(E_id(Id_aux(Id("satp"),model/riscv_vmem_common.sail:85)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_common.sail:84)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("shiftl"),model/riscv_vmem_common.sail:86),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_common.sail:86),[(E_aux(E_lit(L_aux(L_num(56),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Satp64_PPN"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_vmem_common.sail:86)),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("PAGESIZE_BITS"),model/riscv_vmem_common.sail:86)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_common.sail:84)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("SV39_LEVEL_BITS"),model/riscv_vmem_common.sail:91)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(9),model/riscv_vmem_common.sail:91)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("SV39_LEVELS"),model/riscv_vmem_common.sail:92)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(3),model/riscv_vmem_common.sail:92)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("PTE39_LOG_SIZE"),model/riscv_vmem_common.sail:93)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(3),model/riscv_vmem_common.sail:93)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("PTE39_SIZE"),model/riscv_vmem_common.sail:94)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(8),model/riscv_vmem_common.sail:94)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown))),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_SV39_Vaddr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_SV39_Vaddr"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV39_Vaddr_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_SV39_Vaddr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_SV39_Vaddr"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV39_Vaddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(38),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(38),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(38),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV39_Vaddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV39_Vaddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),Id_aux(Id("SV39_Vaddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(38),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(38),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(38),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV39_Vaddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV39_Vaddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(38),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(38),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(38),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(38),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(38),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV39_Vaddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV39_Vaddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV39_Vaddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),Id_aux(Id("SV39_Vaddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(38),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(38),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(38),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(38),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(38),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_SV39_Vaddr_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_SV39_Vaddr_bits"),:1));(Id_aux(Id("_set_SV39_Vaddr_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV39_Vaddr_VPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV39_Vaddr_VPNi"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),Id_aux(Id("SV39_Vaddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(38),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(38),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(38),Unknown),Nexp_aux(Nexp_constant(12),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV39_Vaddr_VPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV39_Vaddr_VPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(38),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(38),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(26),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(26),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV39_Vaddr_VPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV39_Vaddr_VPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV39_Vaddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),Id_aux(Id("SV39_Vaddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(38),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(38),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(26),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(26),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_VPNi"),:1),[(Id_aux(Id("_update_SV39_Vaddr_VPNi"),:1))]));(DEF_overload(Id_aux(Id("_mod_VPNi"),:1),[(Id_aux(Id("_get_SV39_Vaddr_VPNi"),:1));(Id_aux(Id("_set_SV39_Vaddr_VPNi"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV39_Vaddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV39_Vaddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),Id_aux(Id("SV39_Vaddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV39_Vaddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV39_Vaddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV39_Vaddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV39_Vaddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV39_Vaddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),Id_aux(Id("SV39_Vaddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_PgOfs"),:1),[(Id_aux(Id("_update_SV39_Vaddr_PgOfs"),:1))]));(DEF_overload(Id_aux(Id("_mod_PgOfs"),:1),[(Id_aux(Id("_get_SV39_Vaddr_PgOfs"),:1));(Id_aux(Id("_set_SV39_Vaddr_PgOfs"),:1))]));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_SV39_Paddr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_SV39_Paddr"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV39_Paddr_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_SV39_Paddr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_SV39_Paddr"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV39_Paddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(55),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(55),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV39_Paddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV39_Paddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),Id_aux(Id("SV39_Paddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(55),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(55),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV39_Paddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV39_Paddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(55),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(55),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(55),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV39_Paddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV39_Paddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV39_Paddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),Id_aux(Id("SV39_Paddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(55),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(55),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(55),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_SV39_Paddr_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_SV39_Paddr_bits"),:1));(Id_aux(Id("_set_SV39_Paddr_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV39_Paddr_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV39_Paddr_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),Id_aux(Id("SV39_Paddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(55),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(55),Unknown),Nexp_aux(Nexp_constant(12),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV39_Paddr_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV39_Paddr_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(55),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(43),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(43),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(43),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV39_Paddr_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV39_Paddr_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV39_Paddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),Id_aux(Id("SV39_Paddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(55),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(43),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(43),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(43),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_PPNi"),:1),[(Id_aux(Id("_update_SV39_Paddr_PPNi"),:1))]));(DEF_overload(Id_aux(Id("_mod_PPNi"),:1),[(Id_aux(Id("_get_SV39_Paddr_PPNi"),:1));(Id_aux(Id("_set_SV39_Paddr_PPNi"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV39_Paddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV39_Paddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),Id_aux(Id("SV39_Paddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV39_Paddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV39_Paddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV39_Paddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV39_Paddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV39_Paddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1)),Id_aux(Id("SV39_Paddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_PgOfs"),:1),[(Id_aux(Id("_update_SV39_Paddr_PgOfs"),:1))]));(DEF_overload(Id_aux(Id("_mod_PgOfs"),:1),[(Id_aux(Id("_get_SV39_Paddr_PgOfs"),:1));(Id_aux(Id("_set_SV39_Paddr_PgOfs"),:1))]));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_SV39_PTE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_SV39_PTE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV39_PTE_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_SV39_PTE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_SV39_PTE"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV39_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV39_PTE_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV39_PTE_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),Id_aux(Id("SV39_PTE_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV39_PTE_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV39_PTE_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV39_PTE_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV39_PTE_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV39_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),Id_aux(Id("SV39_PTE_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_SV39_PTE_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_SV39_PTE_bits"),:1));(Id_aux(Id("_set_SV39_PTE_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV39_PTE_Ext"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV39_PTE_Ext"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),Id_aux(Id("SV39_PTE_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(54),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(54),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(54),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV39_PTE_Ext"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV39_PTE_Ext"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(54),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(54),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(9),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(9),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV39_PTE_Ext"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV39_PTE_Ext"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV39_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),Id_aux(Id("SV39_PTE_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(54),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(54),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(9),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(9),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Ext"),:1),[(Id_aux(Id("_update_SV39_PTE_Ext"),:1))]));(DEF_overload(Id_aux(Id("_mod_Ext"),:1),[(Id_aux(Id("_get_SV39_PTE_Ext"),:1));(Id_aux(Id("_set_SV39_PTE_Ext"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV39_PTE_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV39_PTE_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),Id_aux(Id("SV39_PTE_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(53),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(53),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(53),Unknown),Nexp_aux(Nexp_constant(10),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV39_PTE_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV39_PTE_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(53),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(53),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(43),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(43),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(43),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV39_PTE_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV39_PTE_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV39_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),Id_aux(Id("SV39_PTE_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(53),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(53),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(43),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(43),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(43),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_PPNi"),:1),[(Id_aux(Id("_update_SV39_PTE_PPNi"),:1))]));(DEF_overload(Id_aux(Id("_mod_PPNi"),:1),[(Id_aux(Id("_get_SV39_PTE_PPNi"),:1));(Id_aux(Id("_set_SV39_PTE_PPNi"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV39_PTE_RSW"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV39_PTE_RSW"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),Id_aux(Id("SV39_PTE_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(9),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV39_PTE_RSW"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV39_PTE_RSW"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV39_PTE_RSW"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV39_PTE_RSW"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV39_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),Id_aux(Id("SV39_PTE_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_RSW"),:1),[(Id_aux(Id("_update_SV39_PTE_RSW"),:1))]));(DEF_overload(Id_aux(Id("_mod_RSW"),:1),[(Id_aux(Id("_get_SV39_PTE_RSW"),:1));(Id_aux(Id("_set_SV39_PTE_RSW"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV39_PTE_BITS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV39_PTE_BITS"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),Id_aux(Id("SV39_PTE_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV39_PTE_BITS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV39_PTE_BITS"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV39_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV39_PTE_BITS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV39_PTE_BITS"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV39_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),Id_aux(Id("SV39_PTE_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_BITS"),:1),[(Id_aux(Id("_update_SV39_PTE_BITS"),:1))]));(DEF_overload(Id_aux(Id("_mod_BITS"),:1),[(Id_aux(Id("_get_SV39_PTE_BITS"),:1));(Id_aux(Id("_set_SV39_PTE_BITS"),:1))]));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("SV48_LEVEL_BITS"),model/riscv_vmem_common.sail:117)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(9),model/riscv_vmem_common.sail:117)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("SV48_LEVELS"),model/riscv_vmem_common.sail:118)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(4),model/riscv_vmem_common.sail:118)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("PTE48_LOG_SIZE"),model/riscv_vmem_common.sail:119)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(3),model/riscv_vmem_common.sail:119)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("PTE48_SIZE"),model/riscv_vmem_common.sail:120)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(8),model/riscv_vmem_common.sail:120)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown))),None)));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_SV48_Vaddr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_SV48_Vaddr"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV48_Vaddr_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_SV48_Vaddr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_SV48_Vaddr"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV48_Vaddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(47),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(47),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(47),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV48_Vaddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV48_Vaddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),Id_aux(Id("SV48_Vaddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(47),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(47),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(47),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV48_Vaddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV48_Vaddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(47),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(47),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(47),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(47),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(47),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV48_Vaddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV48_Vaddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV48_Vaddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),Id_aux(Id("SV48_Vaddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(47),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(47),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(47),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(47),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(47),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_SV48_Vaddr_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_SV48_Vaddr_bits"),:1));(Id_aux(Id("_set_SV48_Vaddr_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV48_Vaddr_VPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV48_Vaddr_VPNi"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),Id_aux(Id("SV48_Vaddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(38),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(38),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(38),Unknown),Nexp_aux(Nexp_constant(12),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV48_Vaddr_VPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV48_Vaddr_VPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(38),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(38),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(26),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(26),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV48_Vaddr_VPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV48_Vaddr_VPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV48_Vaddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),Id_aux(Id("SV48_Vaddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(38),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(38),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(26),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(26),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(26),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_VPNi"),:1),[(Id_aux(Id("_update_SV48_Vaddr_VPNi"),:1))]));(DEF_overload(Id_aux(Id("_mod_VPNi"),:1),[(Id_aux(Id("_get_SV48_Vaddr_VPNi"),:1));(Id_aux(Id("_set_SV48_Vaddr_VPNi"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV48_Vaddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV48_Vaddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),Id_aux(Id("SV48_Vaddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV48_Vaddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV48_Vaddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_Vaddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV48_Vaddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV48_Vaddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV48_Vaddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),Id_aux(Id("SV48_Vaddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_PgOfs"),:1),[(Id_aux(Id("_update_SV48_Vaddr_PgOfs"),:1))]));(DEF_overload(Id_aux(Id("_mod_PgOfs"),:1),[(Id_aux(Id("_get_SV48_Vaddr_PgOfs"),:1));(Id_aux(Id("_set_SV48_Vaddr_PgOfs"),:1))]));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_SV48_Paddr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_SV48_Paddr"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV48_Paddr_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_SV48_Paddr"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_SV48_Paddr"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV48_Paddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(55),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(55),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV48_Paddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV48_Paddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),Id_aux(Id("SV48_Paddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(55),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(55),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV48_Paddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV48_Paddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(55),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(55),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(55),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV48_Paddr_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV48_Paddr_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV48_Paddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),Id_aux(Id("SV48_Paddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(55),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(55),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(55),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_SV48_Paddr_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_SV48_Paddr_bits"),:1));(Id_aux(Id("_set_SV48_Paddr_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV48_Paddr_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV48_Paddr_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),Id_aux(Id("SV48_Paddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(55),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(55),Unknown),Nexp_aux(Nexp_constant(12),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV48_Paddr_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV48_Paddr_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(55),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(43),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(43),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(43),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV48_Paddr_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV48_Paddr_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV48_Paddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),Id_aux(Id("SV48_Paddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(55),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(55),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(12),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(43),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(43),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(43),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_PPNi"),:1),[(Id_aux(Id("_update_SV48_Paddr_PPNi"),:1))]));(DEF_overload(Id_aux(Id("_mod_PPNi"),:1),[(Id_aux(Id("_get_SV48_Paddr_PPNi"),:1));(Id_aux(Id("_set_SV48_Paddr_PPNi"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV48_Paddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV48_Paddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),Id_aux(Id("SV48_Paddr_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV48_Paddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV48_Paddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_Paddr_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(11),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV48_Paddr_PgOfs"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV48_Paddr_PgOfs"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV48_Paddr_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1)),Id_aux(Id("SV48_Paddr_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(11),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(11),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_Paddr"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_PgOfs"),:1),[(Id_aux(Id("_update_SV48_Paddr_PgOfs"),:1))]));(DEF_overload(Id_aux(Id("_mod_PgOfs"),:1),[(Id_aux(Id("_get_SV48_Paddr_PgOfs"),:1));(Id_aux(Id("_set_SV48_Paddr_PgOfs"),:1))]));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_SV48_PTE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),:1),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_SV48_PTE"),:1),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV48_PTE_chunk_0"),:2),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("Mk_SV48_PTE"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("Mk_SV48_PTE"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("SV48_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV48_PTE_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV48_PTE_bits"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),Id_aux(Id("SV48_PTE_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV48_PTE_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV48_PTE_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV48_PTE_bits"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV48_PTE_bits"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV48_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),Id_aux(Id("SV48_PTE_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_bits"),:1),[(Id_aux(Id("_update_SV48_PTE_bits"),:1))]));(DEF_overload(Id_aux(Id("_mod_bits"),:1),[(Id_aux(Id("_get_SV48_PTE_bits"),:1));(Id_aux(Id("_set_SV48_PTE_bits"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV48_PTE_Ext"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV48_PTE_Ext"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),Id_aux(Id("SV48_PTE_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(54),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(54),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(54),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV48_PTE_Ext"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV48_PTE_Ext"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(54),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(54),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(9),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(9),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV48_PTE_Ext"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV48_PTE_Ext"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV48_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),Id_aux(Id("SV48_PTE_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(63),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(54),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(54),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(9),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(9),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_Ext"),:1),[(Id_aux(Id("_update_SV48_PTE_Ext"),:1))]));(DEF_overload(Id_aux(Id("_mod_Ext"),:1),[(Id_aux(Id("_get_SV48_PTE_Ext"),:1));(Id_aux(Id("_set_SV48_PTE_Ext"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV48_PTE_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV48_PTE_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),Id_aux(Id("SV48_PTE_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(53),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(53),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(53),Unknown),Nexp_aux(Nexp_constant(10),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV48_PTE_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV48_PTE_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(53),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(53),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(43),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(43),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(43),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV48_PTE_PPNi"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV48_PTE_PPNi"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV48_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),Id_aux(Id("SV48_PTE_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(53),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(53),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(10),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(43),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(43),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(43),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_PPNi"),:1),[(Id_aux(Id("_update_SV48_PTE_PPNi"),:1))]));(DEF_overload(Id_aux(Id("_mod_PPNi"),:1),[(Id_aux(Id("_get_SV48_PTE_PPNi"),:1));(Id_aux(Id("_set_SV48_PTE_PPNi"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV48_PTE_RSW"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV48_PTE_RSW"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),Id_aux(Id("SV48_PTE_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(9),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV48_PTE_RSW"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV48_PTE_RSW"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV48_PTE_RSW"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV48_PTE_RSW"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV48_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),Id_aux(Id("SV48_PTE_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(9),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(8),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(1),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_RSW"),:1),[(Id_aux(Id("_update_SV48_PTE_RSW"),:1))]));(DEF_overload(Id_aux(Id("_mod_RSW"),:1),[(Id_aux(Id("_get_SV48_PTE_RSW"),:1));(Id_aux(Id("_set_SV48_PTE_RSW"),:1))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_get_SV48_PTE_BITS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_get_SV48_PTE_BITS"),:1),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),Id_aux(Id("SV48_PTE_chunk_0"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:1)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_set_SV48_PTE_BITS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_set_SV48_PTE_BITS"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("r_ref"),:1)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1)));(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-5)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("r"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67)),E_aux(E_app(Id_aux(Id("__bitfield_deref"),:2),[(E_aux(E_id(Id_aux(Id("r_ref"),:2)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("r"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67)),Id_aux(Id("SV48_PTE_chunk_0"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_deref(E_aux(E_id(Id_aux(Id("r_ref"),:4)),Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_id(Id_aux(Id("r"),:4)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),../sail/lib/flow.sail:67))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("register"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),:1))]),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("_update_SV48_PTE_BITS"),:1),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("_update_SV48_PTE_BITS"),:1),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("v"),:1)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)));(P_aux(P_id(Id_aux(Id("x"),:1)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),:1-3)),E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_record_update(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),[(FE_aux(FE_Fexp(Id_aux(Id("SV48_PTE_chunk_0"),:2),E_aux(E_app(Id_aux(Id("vector_update_subrange"),Unknown),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("v"),:2)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),Id_aux(Id("SV48_PTE_chunk_0"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:2),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),:2));(A_aux(A_order(Ord_aux(Ord_dec,:2)),:2))]),:2)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("x"),:2)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_num(7),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),:2)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:2)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),None),E_aux(E_id(Id_aux(Id("v"),:3)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))],Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1),Effect_aux(Effect_set([]),:1)),:1)))]),None)));(DEF_overload(Id_aux(Id("update_BITS"),:1),[(Id_aux(Id("_update_SV48_PTE_BITS"),:1))]));(DEF_overload(Id_aux(Id("_mod_BITS"),:1),[(Id_aux(Id("_get_SV48_PTE_BITS"),:1));(Id_aux(Id("_set_SV48_PTE_BITS"),:1))]));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_PTW_Result"),model/riscv_vmem_common.sail:149),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/riscv_vmem_common.sail:149),Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),model/riscv_vmem_common.sail:149)),model/riscv_vmem_common.sail:149));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/riscv_vmem_common.sail:149),Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),model/riscv_vmem_common.sail:149)),model/riscv_vmem_common.sail:149))]),model/riscv_vmem_common.sail:149),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown));(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_PTW_Result"),model/riscv_vmem_common.sail:149),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("typ_paddr"),model/riscv_vmem_common.sail:149)),Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown)));(P_aux(P_id(Id_aux(Id("typ_pte"),model/riscv_vmem_common.sail:149)),Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown));(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown))]),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151))),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5619#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150),P_aux(P_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150),P_aux(P_id(Id_aux(Id("u_3"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_u_3"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150),P_aux(P_id(Id_aux(Id("u_5"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150))),Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150),P_aux(P_id(Id_aux(Id("u_4"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150))),Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150),P_aux(P_id(Id_aux(Id("u_6"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150))),Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("PTW_Success"),model/riscv_vmem_common.sail:150),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("u_5"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("u_6"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("u_4"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("u_3"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_u_3"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5619#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:150)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("PTW_Failure"),model/riscv_vmem_common.sail:151),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151)));(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown))]),:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown))]),:1))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown));(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'pte"),model/riscv_vmem_common.sail:149)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_TR_Result"),model/riscv_vmem_common.sail:156),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/riscv_vmem_common.sail:156),Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:156)),model/riscv_vmem_common.sail:156)),model/riscv_vmem_common.sail:156));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_type,model/riscv_vmem_common.sail:156),Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:156)),model/riscv_vmem_common.sail:156)),model/riscv_vmem_common.sail:156))]),model/riscv_vmem_common.sail:156),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:156)),Unknown));(Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:156)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_TR_Result"),model/riscv_vmem_common.sail:156),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("typ_paddr"),model/riscv_vmem_common.sail:156)),Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:156)),Unknown)));(P_aux(P_id(Id_aux(Id("typ_failure"),model/riscv_vmem_common.sail:156)),Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:156)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:156)),Unknown));(Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:156)),Unknown))]),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_common.sail:157)),model/riscv_vmem_common.sail:157),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:158)),model/riscv_vmem_common.sail:158),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:158)),model/riscv_vmem_common.sail:158))),Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:158)),model/riscv_vmem_common.sail:158)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:158)),model/riscv_vmem_common.sail:158))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:157)),model/riscv_vmem_common.sail:157),P_aux(P_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:157)),model/riscv_vmem_common.sail:157))),Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:157)),model/riscv_vmem_common.sail:157)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:157)),model/riscv_vmem_common.sail:157))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("TR_Address"),model/riscv_vmem_common.sail:157),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:157)),model/riscv_vmem_common.sail:157)));(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:156)),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("TR_Failure"),model/riscv_vmem_common.sail:158),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:158)),model/riscv_vmem_common.sail:158)));(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:156)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown))]),:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown))]),:1))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:156)),Unknown));(Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:156)),Unknown))],Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'paddr"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_var(Kid_aux(Var("'failure"),model/riscv_vmem_common.sail:156)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_TLB_Entry"),model/riscv_vmem_tlb.sail:3),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:3),Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:3)),model/riscv_vmem_tlb.sail:3)),model/riscv_vmem_tlb.sail:3));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:3),Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:3)),model/riscv_vmem_tlb.sail:3)),model/riscv_vmem_tlb.sail:3));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:3),Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:3)),model/riscv_vmem_tlb.sail:3)),model/riscv_vmem_tlb.sail:3));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:3),Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:3)),model/riscv_vmem_tlb.sail:3)),model/riscv_vmem_tlb.sail:3))]),model/riscv_vmem_tlb.sail:3),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:3),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_TLB_Entry"),model/riscv_vmem_tlb.sail:3),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("atom_asidlen"),model/riscv_vmem_tlb.sail:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("atom_valen"),model/riscv_vmem_tlb.sail:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("atom_palen"),model/riscv_vmem_tlb.sail:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("atom_ptelen"),model/riscv_vmem_tlb.sail:3)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("asid"),model/riscv_vmem_tlb.sail:4),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:3)),Unknown)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(FE_aux(FE_Fexp(Id_aux(Id("global"),model/riscv_vmem_tlb.sail:5),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_tlb.sail:5)),model/riscv_vmem_tlb.sail:5))),None));(FE_aux(FE_Fexp(Id_aux(Id("vAddr"),model/riscv_vmem_tlb.sail:6),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:3)),Unknown)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(FE_aux(FE_Fexp(Id_aux(Id("pAddr"),model/riscv_vmem_tlb.sail:7),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:3)),Unknown)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(FE_aux(FE_Fexp(Id_aux(Id("vMatchMask"),model/riscv_vmem_tlb.sail:8),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:3)),Unknown)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(FE_aux(FE_Fexp(Id_aux(Id("vAddrMask"),model/riscv_vmem_tlb.sail:9),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:3)),Unknown)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(FE_aux(FE_Fexp(Id_aux(Id("pte"),model/riscv_vmem_tlb.sail:10),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:3)),Unknown)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(FE_aux(FE_Fexp(Id_aux(Id("pteAddr"),model/riscv_vmem_tlb.sail:11),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:3)),Unknown)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(FE_aux(FE_Fexp(Id_aux(Id("age"),model/riscv_vmem_tlb.sail:12),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_tlb.sail:12)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:3),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:3),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:3)),Unknown)),Unknown))]),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("make_TLB_Entry"),model/riscv_vmem_tlb.sail:16),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:16),Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:16)),model/riscv_vmem_tlb.sail:16)),model/riscv_vmem_tlb.sail:16));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:16),Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:16)),model/riscv_vmem_tlb.sail:16)),model/riscv_vmem_tlb.sail:16));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:16),Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:16)),model/riscv_vmem_tlb.sail:16)),model/riscv_vmem_tlb.sail:16));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:16),Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:16)),model/riscv_vmem_tlb.sail:16)),model/riscv_vmem_tlb.sail:16));(QI_aux(QI_constraint(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:16)),model/riscv_vmem_tlb.sail:16),Nexp_aux(Nexp_constant(0),model/riscv_vmem_tlb.sail:16)),model/riscv_vmem_tlb.sail:16)),model/riscv_vmem_tlb.sail:16))]),model/riscv_vmem_tlb.sail:16),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17))],Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18))]),model/riscv_vmem_tlb.sail:18),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_tlb.sail:18))]),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:16-18)),model/riscv_vmem_tlb.sail:16-18))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("make_TLB_Entry"),model/riscv_vmem_tlb.sail:19),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("asid"),model/riscv_vmem_tlb.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("global"),model/riscv_vmem_tlb.sail:19)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5648#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("vAddr"),model/riscv_vmem_tlb.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("pAddr"),model/riscv_vmem_tlb.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("pte"),model/riscv_vmem_tlb.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("level"),model/riscv_vmem_tlb.sail:19)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5649#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("pteAddr"),model/riscv_vmem_tlb.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("levelBitSize"),model/riscv_vmem_tlb.sail:19)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5650#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5648#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5649#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5650#"),Unknown)),Unknown)),Unknown))]),Unknown))]),model/riscv_vmem_tlb.sail:19-35)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_tlb.sail:20)),model/riscv_vmem_tlb.sail:20),P_aux(P_id(Id_aux(Id("shift"),model/riscv_vmem_tlb.sail:20)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_shift"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_tlb.sail:20)),model/riscv_vmem_tlb.sail:20)),E_aux(E_app(Id_aux(Id("add_atom"),../sail/lib/arith.sail:13),[(E_aux(E_id(Id_aux(Id("PAGESIZE_BITS"),model/riscv_vmem_tlb.sail:20)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("mult_atom"),../sail/lib/arith.sail:45),[(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_tlb.sail:20)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5649#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("levelBitSize"),model/riscv_vmem_tlb.sail:20)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5650#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:41),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5649#"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex5650#"),Unknown)),Unknown)),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41))]),../sail/lib/arith.sail:41)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(12),Unknown),Nexp_aux(Nexp_times(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5649#"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex5650#"),Unknown)),Unknown)),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9))]),../sail/lib/arith.sail:9))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_vmem_tlb.sail:22),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:22)),model/riscv_vmem_tlb.sail:22)),model/riscv_vmem_tlb.sail:22))]),model/riscv_vmem_tlb.sail:22),P_aux(P_id(Id_aux(Id("vAddrMask"),model/riscv_vmem_tlb.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:22)),model/riscv_vmem_tlb.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:22)),model/riscv_vmem_tlb.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("sub_vec_int"),model/prelude.sail:75),[(E_aux(E_app(Id_aux(Id("shiftl"),model/riscv_vmem_tlb.sail:22),[(E_aux(E_app(Id_aux(Id("xor_vec"),model/prelude.sail:69),[(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_tlb.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("xor_vec"),model/prelude.sail:69),[(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_tlb.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_tlb.sail:22),[(E_aux(E_app(Id_aux(Id("bitvector_length"),../sail/lib/vector_dec.sail:251),[(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_tlb.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/vector_dec.sail:28),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:28))]),../sail/lib/vector_dec.sail:28)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_vmem_tlb.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:22)),model/riscv_vmem_tlb.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:22)),model/riscv_vmem_tlb.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:22)),model/riscv_vmem_tlb.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("shift"),model/riscv_vmem_tlb.sail:22)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_shift"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:22)),model/riscv_vmem_tlb.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_vmem_tlb.sail:22)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:22)),model/riscv_vmem_tlb.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_vmem_tlb.sail:23),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:23)),model/riscv_vmem_tlb.sail:23)),model/riscv_vmem_tlb.sail:23))]),model/riscv_vmem_tlb.sail:23),P_aux(P_id(Id_aux(Id("vMatchMask"),model/riscv_vmem_tlb.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:23)),model/riscv_vmem_tlb.sail:23)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:23)),model/riscv_vmem_tlb.sail:23)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("not_vec"),model/prelude.sail:37),[(E_aux(E_id(Id_aux(Id("vAddrMask"),model/riscv_vmem_tlb.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:22)),model/riscv_vmem_tlb.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:23)),model/riscv_vmem_tlb.sail:23)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("asid"),model/riscv_vmem_tlb.sail:25),E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_tlb.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(FE_aux(FE_Fexp(Id_aux(Id("global"),model/riscv_vmem_tlb.sail:26),E_aux(E_id(Id_aux(Id("global"),model/riscv_vmem_tlb.sail:26)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5648#"),Unknown)),Unknown)),Unknown))]),Unknown))),None));(FE_aux(FE_Fexp(Id_aux(Id("pte"),model/riscv_vmem_tlb.sail:27),E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_tlb.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(FE_aux(FE_Fexp(Id_aux(Id("pteAddr"),model/riscv_vmem_tlb.sail:28),E_aux(E_id(Id_aux(Id("pteAddr"),model/riscv_vmem_tlb.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(FE_aux(FE_Fexp(Id_aux(Id("vAddrMask"),model/riscv_vmem_tlb.sail:29),E_aux(E_id(Id_aux(Id("vAddrMask"),model/riscv_vmem_tlb.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:22)),model/riscv_vmem_tlb.sail:22)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(FE_aux(FE_Fexp(Id_aux(Id("vMatchMask"),model/riscv_vmem_tlb.sail:30),E_aux(E_id(Id_aux(Id("vMatchMask"),model/riscv_vmem_tlb.sail:30)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:23)),model/riscv_vmem_tlb.sail:23)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(FE_aux(FE_Fexp(Id_aux(Id("vAddr"),model/riscv_vmem_tlb.sail:31),E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_tlb.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("vMatchMask"),model/riscv_vmem_tlb.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:23)),model/riscv_vmem_tlb.sail:23)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(FE_aux(FE_Fexp(Id_aux(Id("pAddr"),model/riscv_vmem_tlb.sail:32),E_aux(E_app(Id_aux(Id("shiftl"),model/riscv_vmem_tlb.sail:32),[(E_aux(E_app(Id_aux(Id("shiftr"),model/riscv_vmem_tlb.sail:32),[(E_aux(E_id(Id_aux(Id("pAddr"),model/riscv_vmem_tlb.sail:32)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("shift"),model/riscv_vmem_tlb.sail:32)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_shift"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("shift"),model/riscv_vmem_tlb.sail:32)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_shift"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(FE_aux(FE_Fexp(Id_aux(Id("age"),model/riscv_vmem_tlb.sail:33),E_aux(E_id(Id_aux(Id("mcycle"),model/riscv_vmem_tlb.sail:33)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18))]),model/riscv_vmem_tlb.sail:18)))]),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18))]),model/riscv_vmem_tlb.sail:18))),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18))]),model/riscv_vmem_tlb.sail:18)))]),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18))]),model/riscv_vmem_tlb.sail:18))),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18))]),model/riscv_vmem_tlb.sail:18)))]),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18))]),model/riscv_vmem_tlb.sail:18))),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18))]),model/riscv_vmem_tlb.sail:18)))]),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18))]),model/riscv_vmem_tlb.sail:18))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5648#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5649#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:17)),model/riscv_vmem_tlb.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5650#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:18))]),model/riscv_vmem_tlb.sail:18),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_tlb.sail:18))]),model/riscv_vmem_tlb.sail:18)),model/riscv_vmem_tlb.sail:16-18)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("match_TLB_Entry"),model/riscv_vmem_tlb.sail:37),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:37),Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:37)),model/riscv_vmem_tlb.sail:37)),model/riscv_vmem_tlb.sail:37));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:37),Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:37)),model/riscv_vmem_tlb.sail:37)),model/riscv_vmem_tlb.sail:37));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:37),Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:37)),model/riscv_vmem_tlb.sail:37)),model/riscv_vmem_tlb.sail:37));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:37),Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:37)),model/riscv_vmem_tlb.sail:37)),model/riscv_vmem_tlb.sail:37))]),model/riscv_vmem_tlb.sail:37),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38))]),model/riscv_vmem_tlb.sail:38));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_tlb.sail:39)),model/riscv_vmem_tlb.sail:39),Effect_aux(Effect_set([]),model/riscv_vmem_tlb.sail:37-39)),model/riscv_vmem_tlb.sail:37-39)),model/riscv_vmem_tlb.sail:37-39))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("match_TLB_Entry"),model/riscv_vmem_tlb.sail:40),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("ent"),model/riscv_vmem_tlb.sail:40)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38))]),model/riscv_vmem_tlb.sail:38)));(P_aux(P_id(Id_aux(Id("asid"),model/riscv_vmem_tlb.sail:40)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("vaddr"),model/riscv_vmem_tlb.sail:40)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38))]),model/riscv_vmem_tlb.sail:38));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_tlb.sail:40-41)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("ent"),model/riscv_vmem_tlb.sail:41)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38))]),model/riscv_vmem_tlb.sail:38)),Id_aux(Id("global"),model/riscv_vmem_tlb.sail:41)),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_tlb.sail:5)),model/riscv_vmem_tlb.sail:5)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("ent"),model/riscv_vmem_tlb.sail:41)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38))]),model/riscv_vmem_tlb.sail:38)),Id_aux(Id("asid"),model/riscv_vmem_tlb.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_tlb.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5726#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5734#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5726#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex5734#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("ent"),model/riscv_vmem_tlb.sail:41)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38))]),model/riscv_vmem_tlb.sail:38)),Id_aux(Id("vAddr"),model/riscv_vmem_tlb.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("ent"),model/riscv_vmem_tlb.sail:41)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38))]),model/riscv_vmem_tlb.sail:38)),Id_aux(Id("vMatchMask"),model/riscv_vmem_tlb.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_vmem_tlb.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5749#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5737#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5738#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5749#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5737#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex5738#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38))]),model/riscv_vmem_tlb.sail:38));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:38)),model/riscv_vmem_tlb.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_tlb.sail:39)),model/riscv_vmem_tlb.sail:39),Effect_aux(Effect_set([]),model/riscv_vmem_tlb.sail:37-39)),model/riscv_vmem_tlb.sail:37-39)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("flush_TLB_Entry"),model/riscv_vmem_tlb.sail:43),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:43),Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:43)),model/riscv_vmem_tlb.sail:43)),model/riscv_vmem_tlb.sail:43));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:43),Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:43)),model/riscv_vmem_tlb.sail:43)),model/riscv_vmem_tlb.sail:43));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:43),Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:43)),model/riscv_vmem_tlb.sail:43)),model/riscv_vmem_tlb.sail:43));(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_vmem_tlb.sail:43),Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:43)),model/riscv_vmem_tlb.sail:43)),model/riscv_vmem_tlb.sail:43))]),model/riscv_vmem_tlb.sail:43),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_tlb.sail:45)),model/riscv_vmem_tlb.sail:45),Effect_aux(Effect_set([]),model/riscv_vmem_tlb.sail:43-45)),model/riscv_vmem_tlb.sail:43-45)),model/riscv_vmem_tlb.sail:43-45))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("flush_TLB_Entry"),model/riscv_vmem_tlb.sail:46),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("e"),model/riscv_vmem_tlb.sail:46)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)));(P_aux(P_id(Id_aux(Id("asid"),model/riscv_vmem_tlb.sail:46)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)));(P_aux(P_id(Id_aux(Id("addr"),model/riscv_vmem_tlb.sail:46)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:46-54)),E_aux(E_block([(E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_tlb.sail:47)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_vmem_tlb.sail:47)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("None"),model/riscv_vmem_tlb.sail:48),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_tlb.sail:48)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)));(P_aux(P_app(Id_aux(Id("None"),model/riscv_vmem_tlb.sail:48),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_tlb.sail:48)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44))]),Unknown)),E_aux(E_lit(L_aux(L_true,model/riscv_vmem_tlb.sail:48)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("None"),model/riscv_vmem_tlb.sail:49),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_tlb.sail:49)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)));(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_tlb.sail:49),[(P_aux(P_id(Id_aux(Id("a"),model/riscv_vmem_tlb.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("e"),model/riscv_vmem_tlb.sail:49)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)),Id_aux(Id("vAddr"),model/riscv_vmem_tlb.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("e"),model/riscv_vmem_tlb.sail:49)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)),Id_aux(Id("vMatchMask"),model/riscv_vmem_tlb.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("a"),model/riscv_vmem_tlb.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_tlb.sail:50),[(P_aux(P_id(Id_aux(Id("i"),model/riscv_vmem_tlb.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)));(P_aux(P_app(Id_aux(Id("None"),model/riscv_vmem_tlb.sail:50),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_tlb.sail:50)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("e"),model/riscv_vmem_tlb.sail:50)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)),Id_aux(Id("asid"),model/riscv_vmem_tlb.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("i"),model/riscv_vmem_tlb.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("e"),model/riscv_vmem_tlb.sail:50)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)),Id_aux(Id("global"),model/riscv_vmem_tlb.sail:50)),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_tlb.sail:5)),model/riscv_vmem_tlb.sail:5)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5781#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5781#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5784#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5783#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5784#"),Unknown)),Unknown),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5783#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_tlb.sail:51),[(P_aux(P_id(Id_aux(Id("i"),model/riscv_vmem_tlb.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)));(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_tlb.sail:51),[(P_aux(P_id(Id_aux(Id("a"),model/riscv_vmem_tlb.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("e"),model/riscv_vmem_tlb.sail:51)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)),Id_aux(Id("asid"),model/riscv_vmem_tlb.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("i"),model/riscv_vmem_tlb.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("e"),model/riscv_vmem_tlb.sail:51)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)),Id_aux(Id("vAddr"),model/riscv_vmem_tlb.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_id(Id_aux(Id("a"),model/riscv_vmem_tlb.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)));(E_aux(E_field(E_aux(E_id(Id_aux(Id("e"),model/riscv_vmem_tlb.sail:51)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)),Id_aux(Id("vMatchMask"),model/riscv_vmem_tlb.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)));(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("e"),model/riscv_vmem_tlb.sail:52)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44)),Id_aux(Id("global"),model/riscv_vmem_tlb.sail:52)),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_tlb.sail:5)),model/riscv_vmem_tlb.sail:5)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5832#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5832#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5835#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5834#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5835#"),Unknown)),Unknown),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5834#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5840#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5839#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex5840#"),Unknown)),Unknown),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5839#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_tlb.sail:45)),model/riscv_vmem_tlb.sail:45)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_tlb.sail:45)),model/riscv_vmem_tlb.sail:45))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'palen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44));(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ptelen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'asidlen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_tlb.sail:44),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'valen"),model/riscv_vmem_tlb.sail:44)),model/riscv_vmem_tlb.sail:44)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_tlb.sail:44))]),model/riscv_vmem_tlb.sail:44))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_tlb.sail:45)),model/riscv_vmem_tlb.sail:45),Effect_aux(Effect_set([]),model/riscv_vmem_tlb.sail:43-45)),model/riscv_vmem_tlb.sail:43-45)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("walk39"),model/riscv_vmem_sv39.sail:3),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))],Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3),Effect_aux(Effect_set([(BE_aux(BE_rmem,model/riscv_vmem_sv39.sail:3));(BE_aux(BE_rmemt,model/riscv_vmem_sv39.sail:3));(BE_aux(BE_rreg,model/riscv_vmem_sv39.sail:3));(BE_aux(BE_escape,model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("walk39"),model/riscv_vmem_sv39.sail:4),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("vaddr"),model/riscv_vmem_sv39.sail:4)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("ac"),model/riscv_vmem_sv39.sail:4)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)));(P_aux(P_id(Id_aux(Id("priv"),model/riscv_vmem_sv39.sail:4)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)));(P_aux(P_id(Id_aux(Id("mxr"),model/riscv_vmem_sv39.sail:4)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5852#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("do_sum"),model/riscv_vmem_sv39.sail:4)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5853#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("ptb"),model/riscv_vmem_sv39.sail:4)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("level"),model/riscv_vmem_sv39.sail:4)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5854#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("global"),model/riscv_vmem_sv39.sail:4)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5855#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:4)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5852#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5853#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5854#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5855#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_sv39.sail:4-76)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("va"),model/riscv_vmem_sv39.sail:5)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_SV39_Vaddr"),model/riscv_vmem_sv39.sail:5),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_vmem_sv39.sail:5)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("paddr64"),model/riscv_vmem_sv39.sail:6)),model/riscv_vmem_sv39.sail:6),P_aux(P_id(Id_aux(Id("pt_ofs"),model/riscv_vmem_sv39.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("shiftl"),model/riscv_vmem_sv39.sail:6),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv39.sail:6),[(E_aux(E_lit(L_aux(L_num(56),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("shiftr"),model/riscv_vmem_sv39.sail:6),[(E_aux(E_app(Id_aux(Id("_get_SV39_Vaddr_VPNi"),:1),[(E_aux(E_id(Id_aux(Id("va"),model/riscv_vmem_sv39.sail:6)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("mult_atom"),../sail/lib/arith.sail:45),[(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv39.sail:6)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5854#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("SV39_LEVEL_BITS"),model/riscv_vmem_sv39.sail:6)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:41),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5854#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(9),Unknown)),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41))]),../sail/lib/arith.sail:41)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_id(Id_aux(Id("SV39_LEVEL_BITS"),model/riscv_vmem_sv39.sail:6)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_vmem_sv39.sail:6)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(9),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_vmem_sv39.sail:6)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(8),../sail/lib/arith.sail:18),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("PTE39_LOG_SIZE"),model/riscv_vmem_sv39.sail:7)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("pte_addr"),model/riscv_vmem_sv39.sail:8)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("ptb"),model/riscv_vmem_sv39.sail:8)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pt_ofs"),model/riscv_vmem_sv39.sail:8)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("mem_read"),model/riscv_vmem_sv39.sail:9),[(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_sv39.sail:9)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv39.sail:9),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("pte_addr"),model/riscv_vmem_sv39.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_vmem_sv39.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv39.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv39.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv39.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(8),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_vmem_sv39.sail:10),[(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(8),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("PTW_Failure"),model/riscv_vmem_sv39.sail:16),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_Access"),model/riscv_vmem_sv39.sail:16),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:16)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:16)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_vmem_sv39.sail:18),[(P_aux(P_id(Id_aux(Id("v"),model/riscv_vmem_sv39.sail:18)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(8),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(8),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:19)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_SV39_PTE"),model/riscv_vmem_sv39.sail:19),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_vmem_sv39.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(8),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("pbits"),model/riscv_vmem_sv39.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_app(Id_aux(Id("_get_SV39_PTE_BITS"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:20)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("ext_pte"),model/riscv_vmem_sv39.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_app(Id_aux(Id("_get_SV39_PTE_Ext"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:21)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("pattr"),model/riscv_vmem_sv39.sail:22)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_PTE_Bits"),model/riscv_vmem_sv39.sail:22),[(E_aux(E_id(Id_aux(Id("pbits"),model/riscv_vmem_sv39.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("is_global"),model/riscv_vmem_sv39.sail:23)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5855#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_is_global"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_id(Id_aux(Id("global"),model/riscv_vmem_sv39.sail:23)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5855#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_G"),:1),[(E_aux(E_id(Id_aux(Id("pattr"),model/riscv_vmem_sv39.sail:23)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_vmem_sv39.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5869#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5855#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex5869#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("isInvalidPTE"),model/riscv_vmem_sv39.sail:29),[(E_aux(E_id(Id_aux(Id("pbits"),model/riscv_vmem_sv39.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("ext_pte"),model/riscv_vmem_sv39.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:26)),model/riscv_pte.sail:26)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("PTW_Failure"),model/riscv_vmem_sv39.sail:31),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_Invalid_PTE"),model/riscv_vmem_sv39.sail:31),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:31)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:31)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("isPTEPtr"),model/riscv_vmem_sv39.sail:33),[(E_aux(E_id(Id_aux(Id("pbits"),model/riscv_vmem_sv39.sail:33)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("ext_pte"),model/riscv_vmem_sv39.sail:33)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:21)),model/riscv_pte.sail:21)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("gt_int"),../sail/lib/flow.sail:51),[(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv39.sail:34)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5854#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_vmem_sv39.sail:34)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:41),[(A_aux(A_bool(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5854#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41))]),../sail/lib/flow.sail:41)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("walk39"),model/riscv_vmem_sv39.sail:36),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_vmem_sv39.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_sv39.sail:36)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_vmem_sv39.sail:36)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)));(E_aux(E_id(Id_aux(Id("mxr"),model/riscv_vmem_sv39.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5852#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("do_sum"),model/riscv_vmem_sv39.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5853#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("shiftl"),model/riscv_vmem_sv39.sail:36),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv39.sail:36),[(E_aux(E_lit(L_aux(L_num(56),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_SV39_PTE_PPNi"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:36)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("PAGESIZE_BITS"),model/riscv_vmem_sv39.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv39.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5854#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_vmem_sv39.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5854#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)));(E_aux(E_id(Id_aux(Id("is_global"),model/riscv_vmem_sv39.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5855#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_is_global"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:36)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("PTW_Failure"),model/riscv_vmem_sv39.sail:40),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_Invalid_PTE"),model/riscv_vmem_sv39.sail:40),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:40)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:40)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("checkPTEPermission"),model/riscv_vmem_sv39.sail:43),[(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_sv39.sail:43)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_vmem_sv39.sail:43)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)));(E_aux(E_id(Id_aux(Id("mxr"),model/riscv_vmem_sv39.sail:43)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5852#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("do_sum"),model/riscv_vmem_sv39.sail:43)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5853#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("pattr"),model/riscv_vmem_sv39.sail:43)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(E_aux(E_id(Id_aux(Id("ext_pte"),model/riscv_vmem_sv39.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:43)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTE_Check_Failure"),model/riscv_vmem_sv39.sail:44),[(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:44)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("PTW_Failure"),model/riscv_vmem_sv39.sail:46),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_No_Permission"),model/riscv_vmem_sv39.sail:46),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:46)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:46)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTE_Check_Success"),model/riscv_vmem_sv39.sail:48),[(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:48)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("gt_int"),../sail/lib/flow.sail:51),[(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv39.sail:49)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5854#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_vmem_sv39.sail:49)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:41),[(A_aux(A_bool(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5854#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41))]),../sail/lib/flow.sail:41)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("mask"),model/riscv_vmem_sv39.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("sub_vec_int"),model/prelude.sail:75),[(E_aux(E_app(Id_aux(Id("shiftl"),model/riscv_vmem_sv39.sail:51),[(E_aux(E_app(Id_aux(Id("xor_vec"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("_get_SV39_PTE_PPNi"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:51)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("xor_vec"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("_get_SV39_PTE_PPNi"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:51)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv39.sail:51),[(E_aux(E_lit(L_aux(L_num(44),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_vmem_sv39.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("mult_atom"),../sail/lib/arith.sail:45),[(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv39.sail:51)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5854#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("SV39_LEVEL_BITS"),model/riscv_vmem_sv39.sail:51)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:41),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5854#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(9),Unknown)),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41))]),../sail/lib/arith.sail:41)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_vmem_sv39.sail:51)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_SV39_PTE_PPNi"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:52)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("mask"),model/riscv_vmem_sv39.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv39.sail:52),[(E_aux(E_lit(L_aux(L_num(44),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_vmem_sv39.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("PTW_Failure"),model/riscv_vmem_sv39.sail:55),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_Misaligned"),model/riscv_vmem_sv39.sail:55),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:55)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:55)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("ppn"),model/riscv_vmem_sv39.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("or_vec"),../sail/lib/vector_dec.sail:174),[(E_aux(E_app(Id_aux(Id("_get_SV39_PTE_PPNi"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:58)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv39.sail:58),[(E_aux(E_lit(L_aux(L_num(44),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_SV39_Vaddr_VPNi"),:1),[(E_aux(E_id(Id_aux(Id("va"),model/riscv_vmem_sv39.sail:58)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("mask"),model/riscv_vmem_sv39.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("PTW_Success"),model/riscv_vmem_sv39.sail:62),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("ppn"),model/riscv_vmem_sv39.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("_get_SV39_Vaddr_PgOfs"),:1),[(E_aux(E_id(Id_aux(Id("va"),model/riscv_vmem_sv39.sail:62)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(44),:1),Nexp_aux(Nexp_constant(12),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:62)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)));(E_aux(E_id(Id_aux(Id("pte_addr"),model/riscv_vmem_sv39.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv39.sail:62)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5854#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("is_global"),model/riscv_vmem_sv39.sail:62)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5855#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_is_global"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:62)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:150)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("PTW_Success"),model/riscv_vmem_sv39.sail:68),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_SV39_PTE_PPNi"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:68)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_SV39_Vaddr_PgOfs"),:1),[(E_aux(E_id(Id_aux(Id("va"),model/riscv_vmem_sv39.sail:68)),Typ_aux(Typ_id(Id_aux(Id("SV39_Vaddr"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(44),:1),Nexp_aux(Nexp_constant(12),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:68)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)));(E_aux(E_id(Id_aux(Id("pte_addr"),model/riscv_vmem_sv39.sail:68)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv39.sail:68)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5854#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("is_global"),model/riscv_vmem_sv39.sail:68)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5855#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_is_global"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:68)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:150)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),None))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),None))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5852#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5853#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5854#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5855#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))],Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3),Effect_aux(Effect_set([(BE_aux(BE_rmem,model/riscv_vmem_sv39.sail:3));(BE_aux(BE_rmemt,model/riscv_vmem_sv39.sail:3));(BE_aux(BE_rreg,model/riscv_vmem_sv39.sail:3));(BE_aux(BE_escape,model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)))]),None)));(DEF_type(..type_def));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_sv39.sail:83))]),model/riscv_vmem_sv39.sail:83),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_vmem_sv39.sail:83))]),model/riscv_vmem_sv39.sail:83),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:83),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("TLB39_Entry"),model/riscv_vmem_sv39.sail:83)),model/riscv_vmem_sv39.sail:83)),model/riscv_vmem_sv39.sail:83))]),model/riscv_vmem_sv39.sail:83),Id_aux(Id("tlb39"),model/riscv_vmem_sv39.sail:83)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:83))]),model/riscv_vmem_sv39.sail:83))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lookup_TLB39"),model/riscv_vmem_sv39.sail:85),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:85),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85))]),model/riscv_vmem_sv39.sail:85),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_sv39.sail:85))]),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("lookup_TLB39"),model/riscv_vmem_sv39.sail:86),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("asid"),model/riscv_vmem_sv39.sail:86)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("vaddr"),model/riscv_vmem_sv39.sail:86)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_sv39.sail:86-90)),E_aux(E_case(E_aux(E_id(Id_aux(Id("tlb39"),model/riscv_vmem_sv39.sail:87)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:83))]),model/riscv_vmem_sv39.sail:83)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_vmem_sv39.sail:88),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:88)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:83))]),model/riscv_vmem_sv39.sail:83)),E_aux(E_app(Id_aux(Id("None"),model/riscv_vmem_sv39.sail:88),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:88)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_sv39.sail:89),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_vmem_sv39.sail:89)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:83))]),model/riscv_vmem_sv39.sail:83)),E_aux(E_if(E_aux(E_app(Id_aux(Id("match_TLB_Entry"),model/riscv_vmem_sv39.sail:89),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_vmem_sv39.sail:89)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),../sail/lib/option.sail:10)));(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_sv39.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_vmem_sv39.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_tlb.sail:39)),model/riscv_vmem_tlb.sail:39)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_vmem_sv39.sail:89),[(E_aux(E_tuple([(E_aux(E_lit(L_aux(L_num(0),model/riscv_vmem_sv39.sail:89)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_vmem_sv39.sail:89)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("None"),model/riscv_vmem_sv39.sail:89),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:89)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:85),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85))]),model/riscv_vmem_sv39.sail:85))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:85),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85))]),model/riscv_vmem_sv39.sail:85))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:85),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85))]),model/riscv_vmem_sv39.sail:85),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_sv39.sail:85))]),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("add_to_TLB39"),model/riscv_vmem_sv39.sail:92),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_vmem_sv39.sail:92));(BE_aux(BE_rreg,model/riscv_vmem_sv39.sail:92))]),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("add_to_TLB39"),model/riscv_vmem_sv39.sail:93),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("asid"),model/riscv_vmem_sv39.sail:93)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("vAddr"),model/riscv_vmem_sv39.sail:93)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("pAddr"),model/riscv_vmem_sv39.sail:93)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:93)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92)));(P_aux(P_id(Id_aux(Id("pteAddr"),model/riscv_vmem_sv39.sail:93)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("level"),model/riscv_vmem_sv39.sail:93)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5889#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("global"),model/riscv_vmem_sv39.sail:93)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5890#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5889#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5890#"),Unknown)),Unknown)),Unknown))]),Unknown))]),model/riscv_vmem_sv39.sail:93-96)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("TLB39_Entry"),model/riscv_vmem_sv39.sail:94)),model/riscv_vmem_sv39.sail:94),P_aux(P_id(Id_aux(Id("ent"),model/riscv_vmem_sv39.sail:94)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),E_aux(E_app(Id_aux(Id("make_TLB_Entry"),model/riscv_vmem_sv39.sail:94),[(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_sv39.sail:94)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("global"),model/riscv_vmem_sv39.sail:94)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5890#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_sv39.sail:94)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pAddr"),model/riscv_vmem_sv39.sail:94)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("_get_SV39_PTE_bits"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:94)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv39.sail:94)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5889#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("pteAddr"),model/riscv_vmem_sv39.sail:94)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("SV39_LEVEL_BITS"),model/riscv_vmem_sv39.sail:94)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_tlb.sail:18))]),model/riscv_vmem_tlb.sail:18))),None),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("tlb39"),model/riscv_vmem_sv39.sail:95)),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_vmem_sv39.sail:95),[(E_aux(E_id(Id_aux(Id("ent"),model/riscv_vmem_sv39.sail:95)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5889#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5890#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_vmem_sv39.sail:92));(BE_aux(BE_rreg,model/riscv_vmem_sv39.sail:92))]),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("write_TLB39"),model/riscv_vmem_sv39.sail:98),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:98)),model/riscv_vmem_sv39.sail:98));(Typ_aux(Typ_id(Id_aux(Id("TLB39_Entry"),model/riscv_vmem_sv39.sail:98)),model/riscv_vmem_sv39.sail:98))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:98)),model/riscv_vmem_sv39.sail:98),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_vmem_sv39.sail:83))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:98)),model/riscv_vmem_sv39.sail:98)),model/riscv_vmem_sv39.sail:98),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("write_TLB39"),model/riscv_vmem_sv39.sail:98),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:98)),model/riscv_vmem_sv39.sail:98),P_aux(P_id(Id_aux(Id("idx"),model/riscv_vmem_sv39.sail:98)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_idx"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:98)),model/riscv_vmem_sv39.sail:98)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("TLB39_Entry"),model/riscv_vmem_sv39.sail:98)),model/riscv_vmem_sv39.sail:98),P_aux(P_id(Id_aux(Id("ent"),model/riscv_vmem_sv39.sail:98)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:98)),model/riscv_vmem_sv39.sail:98));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:98-99)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("tlb39"),model/riscv_vmem_sv39.sail:99)),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_vmem_sv39.sail:99),[(E_aux(E_id(Id_aux(Id("ent"),model/riscv_vmem_sv39.sail:99)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:98)),model/riscv_vmem_sv39.sail:98));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:98)),model/riscv_vmem_sv39.sail:98),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("flush_TLB39"),model/riscv_vmem_sv39.sail:101),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:101))]),model/riscv_vmem_sv39.sail:101));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:101))]),model/riscv_vmem_sv39.sail:101))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:101)),model/riscv_vmem_sv39.sail:101),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_sv39.sail:101));(BE_aux(BE_wreg,model/riscv_vmem_sv39.sail:101))]),model/riscv_vmem_sv39.sail:101)),model/riscv_vmem_sv39.sail:101)),model/riscv_vmem_sv39.sail:101))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("flush_TLB39"),model/riscv_vmem_sv39.sail:102),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("asid"),model/riscv_vmem_sv39.sail:102)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:101))]),model/riscv_vmem_sv39.sail:101)));(P_aux(P_id(Id_aux(Id("addr"),model/riscv_vmem_sv39.sail:102)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:101))]),model/riscv_vmem_sv39.sail:101)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:101))]),model/riscv_vmem_sv39.sail:101));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:101))]),model/riscv_vmem_sv39.sail:101))]),model/riscv_vmem_sv39.sail:102-108)),E_aux(E_case(E_aux(E_id(Id_aux(Id("tlb39"),model/riscv_vmem_sv39.sail:103)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:83))]),model/riscv_vmem_sv39.sail:83)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_vmem_sv39.sail:104),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:104)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:83))]),model/riscv_vmem_sv39.sail:83)),E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:104)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_sv39.sail:105),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_vmem_sv39.sail:105)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:83))]),model/riscv_vmem_sv39.sail:83)),E_aux(E_if(E_aux(E_app(Id_aux(Id("flush_TLB_Entry"),model/riscv_vmem_sv39.sail:105),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_vmem_sv39.sail:105)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),../sail/lib/option.sail:10)));(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_sv39.sail:105)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:101))]),model/riscv_vmem_sv39.sail:101)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_vmem_sv39.sail:105)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:101))]),model/riscv_vmem_sv39.sail:101)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_tlb.sail:45)),model/riscv_vmem_tlb.sail:45)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("tlb39"),model/riscv_vmem_sv39.sail:106)),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("None"),model/riscv_vmem_sv39.sail:106),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:106)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:107)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:101)),model/riscv_vmem_sv39.sail:101))),None))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:101)),model/riscv_vmem_sv39.sail:101))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:101))]),model/riscv_vmem_sv39.sail:101));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:101))]),model/riscv_vmem_sv39.sail:101))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:101)),model/riscv_vmem_sv39.sail:101),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_sv39.sail:101));(BE_aux(BE_wreg,model/riscv_vmem_sv39.sail:101))]),model/riscv_vmem_sv39.sail:101)),model/riscv_vmem_sv39.sail:101)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("translate39"),model/riscv_vmem_sv39.sail:112),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))],Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_sv39.sail:112));(BE_aux(BE_wreg,model/riscv_vmem_sv39.sail:112));(BE_aux(BE_wmv,model/riscv_vmem_sv39.sail:112));(BE_aux(BE_wmvt,model/riscv_vmem_sv39.sail:112));(BE_aux(BE_escape,model/riscv_vmem_sv39.sail:112));(BE_aux(BE_rmem,model/riscv_vmem_sv39.sail:112));(BE_aux(BE_rmemt,model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("translate39"),model/riscv_vmem_sv39.sail:113),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("asid"),model/riscv_vmem_sv39.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("ptb"),model/riscv_vmem_sv39.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("vAddr"),model/riscv_vmem_sv39.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("ac"),model/riscv_vmem_sv39.sail:113)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)));(P_aux(P_id(Id_aux(Id("priv"),model/riscv_vmem_sv39.sail:113)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)));(P_aux(P_id(Id_aux(Id("mxr"),model/riscv_vmem_sv39.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5906#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("do_sum"),model/riscv_vmem_sv39.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5907#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("level"),model/riscv_vmem_sv39.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5908#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:113)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5906#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5907#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5908#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_sv39.sail:113-182)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("lookup_TLB39"),model/riscv_vmem_sv39.sail:114),[(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_sv39.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_sv39.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:85),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85))]),model/riscv_vmem_sv39.sail:85)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_sv39.sail:115),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("idx"),model/riscv_vmem_sv39.sail:115)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_idx"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("ent"),model/riscv_vmem_sv39.sail:115)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:85),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85))]),model/riscv_vmem_sv39.sail:85)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:117)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_SV39_PTE"),model/riscv_vmem_sv39.sail:117),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("ent"),model/riscv_vmem_sv39.sail:117)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("ext_pte"),model/riscv_vmem_sv39.sail:118)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_app(Id_aux(Id("_get_SV39_PTE_Ext"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:118)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("pteBits"),model/riscv_vmem_sv39.sail:119)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_PTE_Bits"),model/riscv_vmem_sv39.sail:119),[(E_aux(E_app(Id_aux(Id("_get_SV39_PTE_BITS"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:119)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("checkPTEPermission"),model/riscv_vmem_sv39.sail:120),[(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_sv39.sail:120)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_vmem_sv39.sail:120)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)));(E_aux(E_id(Id_aux(Id("mxr"),model/riscv_vmem_sv39.sail:120)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5906#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("do_sum"),model/riscv_vmem_sv39.sail:120)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5907#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("pteBits"),model/riscv_vmem_sv39.sail:120)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(E_aux(E_id(Id_aux(Id("ext_pte"),model/riscv_vmem_sv39.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:120)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTE_Check_Failure"),model/riscv_vmem_sv39.sail:121),[(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:121)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("TR_Failure"),model/riscv_vmem_sv39.sail:121),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_No_Permission"),model/riscv_vmem_sv39.sail:121),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:121)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:121)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTE_Check_Success"),model/riscv_vmem_sv39.sail:122),[(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:122)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("update_PTE_Bits"),model/riscv_vmem_sv39.sail:123),[(E_aux(E_id(Id_aux(Id("pteBits"),model/riscv_vmem_sv39.sail:123)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_sv39.sail:123)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)));(E_aux(E_id(Id_aux(Id("ext_pte"),model/riscv_vmem_sv39.sail:123)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_vmem_sv39.sail:124),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:124)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)),E_aux(E_app(Id_aux(Id("TR_Address"),model/riscv_vmem_sv39.sail:124),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("or_vec"),../sail/lib/vector_dec.sail:174),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("ent"),model/riscv_vmem_sv39.sail:124)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),Id_aux(Id("pAddr"),model/riscv_vmem_sv39.sail:124)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv39.sail:124),[(E_aux(E_lit(L_aux(L_num(56),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_sv39.sail:124)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_field(E_aux(E_id(Id_aux(Id("ent"),model/riscv_vmem_sv39.sail:124)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),Id_aux(Id("vAddrMask"),model/riscv_vmem_sv39.sail:124)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:124)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_sv39.sail:125),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("pbits"),model/riscv_vmem_sv39.sail:125)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59)));(P_aux(P_id(Id_aux(Id("ext"),model/riscv_vmem_sv39.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("plat_enable_dirty_update"),model/riscv_vmem_sv39.sail:126),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:126)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:35)),model/riscv_platform.sail:35)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5916#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5916#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("TR_Failure"),model/riscv_vmem_sv39.sail:129),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_PTE_Update"),model/riscv_vmem_sv39.sail:129),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:129)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:129)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("n_pte"),model/riscv_vmem_sv39.sail:132)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_SV39_PTE_BITS"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:132)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)));(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_bits"),:1),[(E_aux(E_id(Id_aux(Id("pbits"),model/riscv_vmem_sv39.sail:132)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("n_pte"),model/riscv_vmem_sv39.sail:133)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_SV39_PTE_Ext"),:1),[(E_aux(E_id(Id_aux(Id("n_pte"),model/riscv_vmem_sv39.sail:133)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)));(E_aux(E_id(Id_aux(Id("ext"),model/riscv_vmem_sv39.sail:133)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("TLB39_Entry"),model/riscv_vmem_sv39.sail:134)),model/riscv_vmem_sv39.sail:134),Id_aux(Id("n_ent"),model/riscv_vmem_sv39.sail:134)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),E_aux(E_id(Id_aux(Id("ent"),model/riscv_vmem_sv39.sail:134)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_field(LEXP_aux(LEXP_id(Id_aux(Id("n_ent"),model/riscv_vmem_sv39.sail:135)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:135)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("_get_SV39_PTE_bits"),:1),[(E_aux(E_id(Id_aux(Id("n_pte"),model/riscv_vmem_sv39.sail:135)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("write_TLB39"),model/riscv_vmem_sv39.sail:136),[(E_aux(E_id(Id_aux(Id("idx"),model/riscv_vmem_sv39.sail:136)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_idx"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("n_ent"),model/riscv_vmem_sv39.sail:136)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:98)),model/riscv_vmem_sv39.sail:98)));(E_aux(E_case(E_aux(E_app(Id_aux(Id("mem_write_value"),model/riscv_vmem_sv39.sail:138),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv39.sail:138),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_field(E_aux(E_id(Id_aux(Id("ent"),model/riscv_vmem_sv39.sail:138)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),Id_aux(Id("pteAddr"),model/riscv_vmem_sv39.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_vmem_sv39.sail:138)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_SV39_PTE_bits"),:1),[(E_aux(E_id(Id_aux(Id("n_pte"),model/riscv_vmem_sv39.sail:138)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv39.sail:138)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv39.sail:138)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv39.sail:138)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_vmem_sv39.sail:139),[(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5968#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206)),E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:139)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_vmem_sv39.sail:140),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_vmem_sv39.sail:140)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_vmem_sv39.sail:140),[(E_aux(E_lit(L_aux(L_string("invalid physical address in TLB"),model/riscv_vmem_sv39.sail:140)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("TR_Address"),model/riscv_vmem_sv39.sail:142),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("or_vec"),../sail/lib/vector_dec.sail:174),[(E_aux(E_field(E_aux(E_id(Id_aux(Id("ent"),model/riscv_vmem_sv39.sail:142)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),Id_aux(Id("pAddr"),model/riscv_vmem_sv39.sail:142)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv39.sail:142),[(E_aux(E_lit(L_aux(L_num(56),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_sv39.sail:142)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_field(E_aux(E_id(Id_aux(Id("ent"),model/riscv_vmem_sv39.sail:142)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),Id_aux(Id("vAddrMask"),model/riscv_vmem_sv39.sail:142)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:142)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),None))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),None))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_vmem_sv39.sail:149),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:149)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:85),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:85)),model/riscv_vmem_sv39.sail:85))]),model/riscv_vmem_sv39.sail:85)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("walk39"),model/riscv_vmem_sv39.sail:150),[(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_sv39.sail:150)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_sv39.sail:150)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_vmem_sv39.sail:150)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)));(E_aux(E_id(Id_aux(Id("mxr"),model/riscv_vmem_sv39.sail:150)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5906#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("do_sum"),model/riscv_vmem_sv39.sail:150)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5907#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("ptb"),model/riscv_vmem_sv39.sail:150)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv39.sail:150)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5908#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv39.sail:150)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:150)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTW_Failure"),model/riscv_vmem_sv39.sail:151),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("f"),model/riscv_vmem_sv39.sail:151)),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151)));(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:151)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)),E_aux(E_app(Id_aux(Id("TR_Failure"),model/riscv_vmem_sv39.sail:151),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("f"),model/riscv_vmem_sv39.sail:151)),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:151)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTW_Success"),model/riscv_vmem_sv39.sail:152),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("pAddr"),model/riscv_vmem_sv39.sail:152)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(P_aux(P_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:152)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_common.sail:150)));(P_aux(P_id(Id_aux(Id("pteAddr"),model/riscv_vmem_sv39.sail:152)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(P_aux(P_id(Id_aux(Id("level"),model/riscv_vmem_sv39.sail:152)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_level"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("global"),model/riscv_vmem_sv39.sail:152)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5975#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:152)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:150)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv39.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_sv39.sail:3))]),model/riscv_vmem_sv39.sail:3)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("update_PTE_Bits"),model/riscv_vmem_sv39.sail:153),[(E_aux(E_app(Id_aux(Id("Mk_PTE_Bits"),model/riscv_vmem_sv39.sail:153),[(E_aux(E_app(Id_aux(Id("_get_SV39_PTE_BITS"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:153)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_common.sail:150)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_sv39.sail:153)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)));(E_aux(E_app(Id_aux(Id("_get_SV39_PTE_Ext"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:153)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_common.sail:150)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_vmem_sv39.sail:154),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:154)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("add_to_TLB39"),model/riscv_vmem_sv39.sail:155),[(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_sv39.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_sv39.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pAddr"),model/riscv_vmem_sv39.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:155)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("pteAddr"),model/riscv_vmem_sv39.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv39.sail:155)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_level"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("global"),model/riscv_vmem_sv39.sail:155)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5975#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92)));(E_aux(E_app(Id_aux(Id("TR_Address"),model/riscv_vmem_sv39.sail:156),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("pAddr"),model/riscv_vmem_sv39.sail:156)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:156)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_sv39.sail:158),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("pbits"),model/riscv_vmem_sv39.sail:158)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59)));(P_aux(P_id(Id_aux(Id("ext"),model/riscv_vmem_sv39.sail:158)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)),E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("plat_enable_dirty_update"),model/riscv_vmem_sv39.sail:159),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:159)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:35)),model/riscv_platform.sail:35)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex5976#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5976#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("TR_Failure"),model/riscv_vmem_sv39.sail:162),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_PTE_Update"),model/riscv_vmem_sv39.sail:162),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:162)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:162)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:164)),model/riscv_vmem_sv39.sail:164),Id_aux(Id("w_pte"),model/riscv_vmem_sv39.sail:164)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_SV39_PTE_BITS"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv39.sail:164)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:3)),model/riscv_vmem_common.sail:150)));(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_bits"),:1),[(E_aux(E_id(Id_aux(Id("pbits"),model/riscv_vmem_sv39.sail:164)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:165)),model/riscv_vmem_sv39.sail:165),Id_aux(Id("w_pte"),model/riscv_vmem_sv39.sail:165)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_SV39_PTE_Ext"),:1),[(E_aux(E_id(Id_aux(Id("w_pte"),model/riscv_vmem_sv39.sail:165)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:164)),model/riscv_vmem_sv39.sail:164)));(E_aux(E_id(Id_aux(Id("ext"),model/riscv_vmem_sv39.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_case(E_aux(E_app(Id_aux(Id("mem_write_value"),model/riscv_vmem_sv39.sail:166),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv39.sail:166),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("pteAddr"),model/riscv_vmem_sv39.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_vmem_sv39.sail:166)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_SV39_PTE_bits"),:1),[(E_aux(E_id(Id_aux(Id("w_pte"),model/riscv_vmem_sv39.sail:166)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:165)),model/riscv_vmem_sv39.sail:165)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv39.sail:166)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv39.sail:166)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv39.sail:166)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_vmem_sv39.sail:167),[(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5979#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("add_to_TLB39"),model/riscv_vmem_sv39.sail:168),[(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_sv39.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_sv39.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pAddr"),model/riscv_vmem_sv39.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("w_pte"),model/riscv_vmem_sv39.sail:168)),Typ_aux(Typ_id(Id_aux(Id("SV39_PTE"),model/riscv_vmem_sv39.sail:165)),model/riscv_vmem_sv39.sail:165)));(E_aux(E_id(Id_aux(Id("pteAddr"),model/riscv_vmem_sv39.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv39.sail:168)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_level"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("global"),model/riscv_vmem_sv39.sail:168)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5975#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:92)),model/riscv_vmem_sv39.sail:92)));(E_aux(E_app(Id_aux(Id("TR_Address"),model/riscv_vmem_sv39.sail:169),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("pAddr"),model/riscv_vmem_sv39.sail:169)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:169)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_vmem_sv39.sail:171),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_vmem_sv39.sail:171)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("TR_Failure"),model/riscv_vmem_sv39.sail:173),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_Access"),model/riscv_vmem_sv39.sail:173),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:173)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv39.sail:173)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),None))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),None))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),None))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),None))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5906#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5907#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5908#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))],Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_sv39.sail:112));(BE_aux(BE_wreg,model/riscv_vmem_sv39.sail:112));(BE_aux(BE_wmv,model/riscv_vmem_sv39.sail:112));(BE_aux(BE_wmvt,model/riscv_vmem_sv39.sail:112));(BE_aux(BE_escape,model/riscv_vmem_sv39.sail:112));(BE_aux(BE_rmem,model/riscv_vmem_sv39.sail:112));(BE_aux(BE_rmemt,model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("init_vmem_sv39"),model/riscv_vmem_sv39.sail:184),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:184)),model/riscv_vmem_sv39.sail:184),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_vmem_sv39.sail:83))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:184)),model/riscv_vmem_sv39.sail:184)),model/riscv_vmem_sv39.sail:184),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("init_vmem_sv39"),model/riscv_vmem_sv39.sail:184),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:184)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("tlb39"),model/riscv_vmem_sv39.sail:185)),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("None"),model/riscv_vmem_sv39.sail:185),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv39.sail:185)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:184)),model/riscv_vmem_sv39.sail:184))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:184)),model/riscv_vmem_sv39.sail:184),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("walk48"),model/riscv_vmem_sv48.sail:3),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))],Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3),Effect_aux(Effect_set([(BE_aux(BE_rmem,model/riscv_vmem_sv48.sail:3));(BE_aux(BE_rmemt,model/riscv_vmem_sv48.sail:3));(BE_aux(BE_rreg,model/riscv_vmem_sv48.sail:3));(BE_aux(BE_escape,model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("walk48"),model/riscv_vmem_sv48.sail:4),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("vaddr"),model/riscv_vmem_sv48.sail:4)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("ac"),model/riscv_vmem_sv48.sail:4)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)));(P_aux(P_id(Id_aux(Id("priv"),model/riscv_vmem_sv48.sail:4)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)));(P_aux(P_id(Id_aux(Id("mxr"),model/riscv_vmem_sv48.sail:4)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5986#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("do_sum"),model/riscv_vmem_sv48.sail:4)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5987#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("ptb"),model/riscv_vmem_sv48.sail:4)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("level"),model/riscv_vmem_sv48.sail:4)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5988#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("global"),model/riscv_vmem_sv48.sail:4)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5989#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:4)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5986#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5987#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5988#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5989#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_sv48.sail:4-76)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("va"),model/riscv_vmem_sv48.sail:5)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_SV48_Vaddr"),model/riscv_vmem_sv48.sail:5),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_vmem_sv48.sail:5)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("paddr64"),model/riscv_vmem_sv48.sail:6)),model/riscv_vmem_sv48.sail:6),P_aux(P_id(Id_aux(Id("pt_ofs"),model/riscv_vmem_sv48.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("shiftl"),model/riscv_vmem_sv48.sail:6),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv48.sail:6),[(E_aux(E_lit(L_aux(L_num(56),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("shiftr"),model/riscv_vmem_sv48.sail:6),[(E_aux(E_app(Id_aux(Id("_get_SV48_Vaddr_VPNi"),:1),[(E_aux(E_id(Id_aux(Id("va"),model/riscv_vmem_sv48.sail:6)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("mult_atom"),../sail/lib/arith.sail:45),[(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv48.sail:6)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5988#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("SV48_LEVEL_BITS"),model/riscv_vmem_sv48.sail:6)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:41),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5988#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(9),Unknown)),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41))]),../sail/lib/arith.sail:41)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_id(Id_aux(Id("SV48_LEVEL_BITS"),model/riscv_vmem_sv48.sail:6)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_vmem_sv48.sail:6)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(9),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_vmem_sv48.sail:6)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(8),../sail/lib/arith.sail:18),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("PTE48_LOG_SIZE"),model/riscv_vmem_sv48.sail:7)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("pte_addr"),model/riscv_vmem_sv48.sail:8)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("ptb"),model/riscv_vmem_sv48.sail:8)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pt_ofs"),model/riscv_vmem_sv48.sail:8)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("mem_read"),model/riscv_vmem_sv48.sail:9),[(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_sv48.sail:9)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv48.sail:9),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("pte_addr"),model/riscv_vmem_sv48.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_vmem_sv48.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv48.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv48.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv48.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(8),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_vmem_sv48.sail:10),[(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(8),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("PTW_Failure"),model/riscv_vmem_sv48.sail:16),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_Access"),model/riscv_vmem_sv48.sail:16),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:16)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:16)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_vmem_sv48.sail:18),[(P_aux(P_id(Id_aux(Id("v"),model/riscv_vmem_sv48.sail:18)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(8),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(8),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:19)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_SV48_PTE"),model/riscv_vmem_sv48.sail:19),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_vmem_sv48.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(8),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("pbits"),model/riscv_vmem_sv48.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_app(Id_aux(Id("_get_SV48_PTE_BITS"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:20)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("ext_pte"),model/riscv_vmem_sv48.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)),E_aux(E_app(Id_aux(Id("_get_SV48_PTE_Ext"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:21)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("pattr"),model/riscv_vmem_sv48.sail:22)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_PTE_Bits"),model/riscv_vmem_sv48.sail:22),[(E_aux(E_id(Id_aux(Id("pbits"),model/riscv_vmem_sv48.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("is_global"),model/riscv_vmem_sv48.sail:23)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5989#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_is_global"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_id(Id_aux(Id("global"),model/riscv_vmem_sv48.sail:23)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5989#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_G"),:1),[(E_aux(E_id(Id_aux(Id("pattr"),model/riscv_vmem_sv48.sail:23)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_vmem_sv48.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6003#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5989#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex6003#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("isInvalidPTE"),model/riscv_vmem_sv48.sail:29),[(E_aux(E_id(Id_aux(Id("pbits"),model/riscv_vmem_sv48.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("ext_pte"),model/riscv_vmem_sv48.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:26)),model/riscv_pte.sail:26)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("PTW_Failure"),model/riscv_vmem_sv48.sail:31),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_Invalid_PTE"),model/riscv_vmem_sv48.sail:31),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:31)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:31)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("isPTEPtr"),model/riscv_vmem_sv48.sail:33),[(E_aux(E_id(Id_aux(Id("pbits"),model/riscv_vmem_sv48.sail:33)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("ext_pte"),model/riscv_vmem_sv48.sail:33)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_pte.sail:21)),model/riscv_pte.sail:21)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("gt_int"),../sail/lib/flow.sail:51),[(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv48.sail:34)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5988#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_vmem_sv48.sail:34)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:41),[(A_aux(A_bool(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5988#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41))]),../sail/lib/flow.sail:41)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("walk48"),model/riscv_vmem_sv48.sail:36),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_vmem_sv48.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_sv48.sail:36)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_vmem_sv48.sail:36)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)));(E_aux(E_id(Id_aux(Id("mxr"),model/riscv_vmem_sv48.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5986#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("do_sum"),model/riscv_vmem_sv48.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5987#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("shiftl"),model/riscv_vmem_sv48.sail:36),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv48.sail:36),[(E_aux(E_lit(L_aux(L_num(56),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_SV48_PTE_PPNi"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:36)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("PAGESIZE_BITS"),model/riscv_vmem_sv48.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv48.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5988#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_vmem_sv48.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5988#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)));(E_aux(E_id(Id_aux(Id("is_global"),model/riscv_vmem_sv48.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5989#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_is_global"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:36)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("PTW_Failure"),model/riscv_vmem_sv48.sail:40),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_Invalid_PTE"),model/riscv_vmem_sv48.sail:40),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:40)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:40)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("checkPTEPermission"),model/riscv_vmem_sv48.sail:43),[(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_sv48.sail:43)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_vmem_sv48.sail:43)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)));(E_aux(E_id(Id_aux(Id("mxr"),model/riscv_vmem_sv48.sail:43)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5986#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("do_sum"),model/riscv_vmem_sv48.sail:43)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5987#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("pattr"),model/riscv_vmem_sv48.sail:43)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(E_aux(E_id(Id_aux(Id("ext_pte"),model/riscv_vmem_sv48.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:43)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTE_Check_Failure"),model/riscv_vmem_sv48.sail:44),[(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:44)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("PTW_Failure"),model/riscv_vmem_sv48.sail:46),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_No_Permission"),model/riscv_vmem_sv48.sail:46),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:46)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:46)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTE_Check_Success"),model/riscv_vmem_sv48.sail:48),[(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:48)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Check"),model/riscv_pte.sail:43)),model/riscv_pte.sail:43)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("gt_int"),../sail/lib/flow.sail:51),[(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv48.sail:49)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5988#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_vmem_sv48.sail:49)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:41),[(A_aux(A_bool(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5988#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41))]),../sail/lib/flow.sail:41)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("mask"),model/riscv_vmem_sv48.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("sub_vec_int"),model/prelude.sail:75),[(E_aux(E_app(Id_aux(Id("shiftl"),model/riscv_vmem_sv48.sail:51),[(E_aux(E_app(Id_aux(Id("xor_vec"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("_get_SV48_PTE_PPNi"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:51)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("xor_vec"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("_get_SV48_PTE_PPNi"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:51)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv48.sail:51),[(E_aux(E_lit(L_aux(L_num(44),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_vmem_sv48.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("mult_atom"),../sail/lib/arith.sail:45),[(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv48.sail:51)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5988#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("SV48_LEVEL_BITS"),model/riscv_vmem_sv48.sail:51)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:41),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5988#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(9),Unknown)),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41))]),../sail/lib/arith.sail:41)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_vmem_sv48.sail:51)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("_get_SV48_PTE_PPNi"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:52)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("mask"),model/riscv_vmem_sv48.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv48.sail:52),[(E_aux(E_lit(L_aux(L_num(44),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_vmem_sv48.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("PTW_Failure"),model/riscv_vmem_sv48.sail:55),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_Misaligned"),model/riscv_vmem_sv48.sail:55),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:55)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:55)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("ppn"),model/riscv_vmem_sv48.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("or_vec"),../sail/lib/vector_dec.sail:174),[(E_aux(E_app(Id_aux(Id("_get_SV48_PTE_PPNi"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:58)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv48.sail:58),[(E_aux(E_lit(L_aux(L_num(44),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_SV48_Vaddr_VPNi"),:1),[(E_aux(E_id(Id_aux(Id("va"),model/riscv_vmem_sv48.sail:58)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(27),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("mask"),model/riscv_vmem_sv48.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("PTW_Success"),model/riscv_vmem_sv48.sail:62),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("ppn"),model/riscv_vmem_sv48.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("_get_SV48_Vaddr_PgOfs"),:1),[(E_aux(E_id(Id_aux(Id("va"),model/riscv_vmem_sv48.sail:62)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(44),:1),Nexp_aux(Nexp_constant(12),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:62)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)));(E_aux(E_id(Id_aux(Id("pte_addr"),model/riscv_vmem_sv48.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv48.sail:62)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5988#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("is_global"),model/riscv_vmem_sv48.sail:62)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5989#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_is_global"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:62)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:150)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("PTW_Success"),model/riscv_vmem_sv48.sail:68),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_app(Id_aux(Id("_get_SV48_PTE_PPNi"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:68)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(44),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_app(Id_aux(Id("_get_SV48_Vaddr_PgOfs"),:1),[(E_aux(E_id(Id_aux(Id("va"),model/riscv_vmem_sv48.sail:68)),Typ_aux(Typ_id(Id_aux(Id("SV48_Vaddr"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(44),:1),Nexp_aux(Nexp_constant(12),:1)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:68)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)));(E_aux(E_id(Id_aux(Id("pte_addr"),model/riscv_vmem_sv48.sail:68)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv48.sail:68)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5988#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("is_global"),model/riscv_vmem_sv48.sail:68)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex5989#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'_is_global"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:68)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:150)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_common.sail:149),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),None))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),None))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5986#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5987#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex5988#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex5989#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))],Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3),Effect_aux(Effect_set([(BE_aux(BE_rmem,model/riscv_vmem_sv48.sail:3));(BE_aux(BE_rmemt,model/riscv_vmem_sv48.sail:3));(BE_aux(BE_rreg,model/riscv_vmem_sv48.sail:3));(BE_aux(BE_escape,model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)))]),None)));(DEF_type(..type_def));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_sv48.sail:83))]),model/riscv_vmem_sv48.sail:83),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_vmem_sv48.sail:83))]),model/riscv_vmem_sv48.sail:83),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:83),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("TLB48_Entry"),model/riscv_vmem_sv48.sail:83)),model/riscv_vmem_sv48.sail:83)),model/riscv_vmem_sv48.sail:83))]),model/riscv_vmem_sv48.sail:83),Id_aux(Id("tlb48"),model/riscv_vmem_sv48.sail:83)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:83))]),model/riscv_vmem_sv48.sail:83))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lookup_TLB48"),model/riscv_vmem_sv48.sail:85),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:85),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:85)),model/riscv_vmem_sv48.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:85)),model/riscv_vmem_sv48.sail:85))]),model/riscv_vmem_sv48.sail:85),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_sv48.sail:85))]),model/riscv_vmem_sv48.sail:85)),model/riscv_vmem_sv48.sail:85)),model/riscv_vmem_sv48.sail:85))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("lookup_TLB48"),model/riscv_vmem_sv48.sail:86),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("asid"),model/riscv_vmem_sv48.sail:86)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("vaddr"),model/riscv_vmem_sv48.sail:86)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_sv48.sail:86-90)),E_aux(E_case(E_aux(E_id(Id_aux(Id("tlb48"),model/riscv_vmem_sv48.sail:87)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:83))]),model/riscv_vmem_sv48.sail:83)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_vmem_sv48.sail:88),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:88)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:83))]),model/riscv_vmem_sv48.sail:83)),E_aux(E_app(Id_aux(Id("None"),model/riscv_vmem_sv48.sail:88),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:88)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:85)),model/riscv_vmem_sv48.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_sv48.sail:89),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_vmem_sv48.sail:89)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:83))]),model/riscv_vmem_sv48.sail:83)),E_aux(E_if(E_aux(E_app(Id_aux(Id("match_TLB_Entry"),model/riscv_vmem_sv48.sail:89),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_vmem_sv48.sail:89)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),../sail/lib/option.sail:10)));(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_sv48.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_vmem_sv48.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_tlb.sail:39)),model/riscv_vmem_tlb.sail:39)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_vmem_sv48.sail:89),[(E_aux(E_tuple([(E_aux(E_lit(L_aux(L_num(0),model/riscv_vmem_sv48.sail:89)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_vmem_sv48.sail:89)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:85)),model/riscv_vmem_sv48.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:85)),model/riscv_vmem_sv48.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("None"),model/riscv_vmem_sv48.sail:89),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:89)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:85)),model/riscv_vmem_sv48.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:85),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:85)),model/riscv_vmem_sv48.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:85)),model/riscv_vmem_sv48.sail:85))]),model/riscv_vmem_sv48.sail:85))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:85),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:85)),model/riscv_vmem_sv48.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:85)),model/riscv_vmem_sv48.sail:85))]),model/riscv_vmem_sv48.sail:85))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:85),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:85)),model/riscv_vmem_sv48.sail:85));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:85)),model/riscv_vmem_sv48.sail:85))]),model/riscv_vmem_sv48.sail:85),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_sv48.sail:85))]),model/riscv_vmem_sv48.sail:85)),model/riscv_vmem_sv48.sail:85)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("add_to_TLB48"),model/riscv_vmem_sv48.sail:92),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_vmem_sv48.sail:92));(BE_aux(BE_rreg,model/riscv_vmem_sv48.sail:92))]),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("add_to_TLB48"),model/riscv_vmem_sv48.sail:93),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("asid"),model/riscv_vmem_sv48.sail:93)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("vAddr"),model/riscv_vmem_sv48.sail:93)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("pAddr"),model/riscv_vmem_sv48.sail:93)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:93)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92)));(P_aux(P_id(Id_aux(Id("pteAddr"),model/riscv_vmem_sv48.sail:93)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("level"),model/riscv_vmem_sv48.sail:93)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6023#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("global"),model/riscv_vmem_sv48.sail:93)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6024#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6023#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6024#"),Unknown)),Unknown)),Unknown))]),Unknown))]),model/riscv_vmem_sv48.sail:93-96)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("TLB48_Entry"),model/riscv_vmem_sv48.sail:94)),model/riscv_vmem_sv48.sail:94),P_aux(P_id(Id_aux(Id("ent"),model/riscv_vmem_sv48.sail:94)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82))),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82)),E_aux(E_app(Id_aux(Id("make_TLB_Entry"),model/riscv_vmem_sv48.sail:94),[(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_sv48.sail:94)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("global"),model/riscv_vmem_sv48.sail:94)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6024#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_sv48.sail:94)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pAddr"),model/riscv_vmem_sv48.sail:94)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("_get_SV48_PTE_bits"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:94)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv48.sail:94)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6023#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("pteAddr"),model/riscv_vmem_sv48.sail:94)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("SV48_LEVEL_BITS"),model/riscv_vmem_sv48.sail:94)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(9),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_tlb.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_tlb.sail:18));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_tlb.sail:18))]),model/riscv_vmem_tlb.sail:18))),None),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("tlb48"),model/riscv_vmem_sv48.sail:95)),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_vmem_sv48.sail:95),[(E_aux(E_id(Id_aux(Id("ent"),model/riscv_vmem_sv48.sail:95)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6023#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6024#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_vmem_sv48.sail:92));(BE_aux(BE_rreg,model/riscv_vmem_sv48.sail:92))]),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("write_TLB48"),model/riscv_vmem_sv48.sail:98),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:98)),model/riscv_vmem_sv48.sail:98));(Typ_aux(Typ_id(Id_aux(Id("TLB48_Entry"),model/riscv_vmem_sv48.sail:98)),model/riscv_vmem_sv48.sail:98))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:98)),model/riscv_vmem_sv48.sail:98),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_vmem_sv48.sail:83))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:98)),model/riscv_vmem_sv48.sail:98)),model/riscv_vmem_sv48.sail:98),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("write_TLB48"),model/riscv_vmem_sv48.sail:98),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:98)),model/riscv_vmem_sv48.sail:98),P_aux(P_id(Id_aux(Id("idx"),model/riscv_vmem_sv48.sail:98)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_idx"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:98)),model/riscv_vmem_sv48.sail:98)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("TLB48_Entry"),model/riscv_vmem_sv48.sail:98)),model/riscv_vmem_sv48.sail:98),P_aux(P_id(Id_aux(Id("ent"),model/riscv_vmem_sv48.sail:98)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82))),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:98)),model/riscv_vmem_sv48.sail:98));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:98-99)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("tlb48"),model/riscv_vmem_sv48.sail:99)),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_vmem_sv48.sail:99),[(E_aux(E_id(Id_aux(Id("ent"),model/riscv_vmem_sv48.sail:99)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:98)),model/riscv_vmem_sv48.sail:98));(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:98)),model/riscv_vmem_sv48.sail:98),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("flush_TLB48"),model/riscv_vmem_sv48.sail:101),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:101))]),model/riscv_vmem_sv48.sail:101));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:101))]),model/riscv_vmem_sv48.sail:101))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:101)),model/riscv_vmem_sv48.sail:101),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_sv48.sail:101));(BE_aux(BE_wreg,model/riscv_vmem_sv48.sail:101))]),model/riscv_vmem_sv48.sail:101)),model/riscv_vmem_sv48.sail:101)),model/riscv_vmem_sv48.sail:101))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("flush_TLB48"),model/riscv_vmem_sv48.sail:102),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("asid"),model/riscv_vmem_sv48.sail:102)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:101))]),model/riscv_vmem_sv48.sail:101)));(P_aux(P_id(Id_aux(Id("addr"),model/riscv_vmem_sv48.sail:102)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:101))]),model/riscv_vmem_sv48.sail:101)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:101))]),model/riscv_vmem_sv48.sail:101));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:101))]),model/riscv_vmem_sv48.sail:101))]),model/riscv_vmem_sv48.sail:102-108)),E_aux(E_case(E_aux(E_id(Id_aux(Id("tlb48"),model/riscv_vmem_sv48.sail:103)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:83))]),model/riscv_vmem_sv48.sail:83)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_vmem_sv48.sail:104),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:104)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:83))]),model/riscv_vmem_sv48.sail:83)),E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:104)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_sv48.sail:105),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_vmem_sv48.sail:105)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:83))]),model/riscv_vmem_sv48.sail:83)),E_aux(E_if(E_aux(E_app(Id_aux(Id("flush_TLB_Entry"),model/riscv_vmem_sv48.sail:105),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_vmem_sv48.sail:105)),Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),../sail/lib/option.sail:10)));(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_sv48.sail:105)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:101))]),model/riscv_vmem_sv48.sail:101)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_vmem_sv48.sail:105)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:101))]),model/riscv_vmem_sv48.sail:101)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_tlb.sail:45)),model/riscv_vmem_tlb.sail:45)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("tlb48"),model/riscv_vmem_sv48.sail:106)),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("None"),model/riscv_vmem_sv48.sail:106),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:106)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:107)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:101)),model/riscv_vmem_sv48.sail:101))),None))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:101)),model/riscv_vmem_sv48.sail:101))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:101))]),model/riscv_vmem_sv48.sail:101));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:101),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:101))]),model/riscv_vmem_sv48.sail:101))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:101)),model/riscv_vmem_sv48.sail:101),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_sv48.sail:101));(BE_aux(BE_wreg,model/riscv_vmem_sv48.sail:101))]),model/riscv_vmem_sv48.sail:101)),model/riscv_vmem_sv48.sail:101)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("translate48"),model/riscv_vmem_sv48.sail:112),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))],Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_sv48.sail:112));(BE_aux(BE_wreg,model/riscv_vmem_sv48.sail:112));(BE_aux(BE_wmv,model/riscv_vmem_sv48.sail:112));(BE_aux(BE_wmvt,model/riscv_vmem_sv48.sail:112));(BE_aux(BE_escape,model/riscv_vmem_sv48.sail:112));(BE_aux(BE_rmem,model/riscv_vmem_sv48.sail:112));(BE_aux(BE_rmemt,model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("translate48"),model/riscv_vmem_sv48.sail:113),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("asid"),model/riscv_vmem_sv48.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("ptb"),model/riscv_vmem_sv48.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("vAddr"),model/riscv_vmem_sv48.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("ac"),model/riscv_vmem_sv48.sail:113)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112)));(P_aux(P_id(Id_aux(Id("priv"),model/riscv_vmem_sv48.sail:113)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)));(P_aux(P_id(Id_aux(Id("mxr"),model/riscv_vmem_sv48.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6040#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("do_sum"),model/riscv_vmem_sv48.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6041#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("level"),model/riscv_vmem_sv48.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6042#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:113)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6040#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6041#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6042#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_sv48.sail:113-144)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("walk48"),model/riscv_vmem_sv48.sail:114),[(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_sv48.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_sv48.sail:114)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_vmem_sv48.sail:114)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)));(E_aux(E_id(Id_aux(Id("mxr"),model/riscv_vmem_sv48.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6040#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("do_sum"),model/riscv_vmem_sv48.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6041#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("ptb"),model/riscv_vmem_sv48.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv48.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6042#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv48.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:114)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTW_Failure"),model/riscv_vmem_sv48.sail:115),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("f"),model/riscv_vmem_sv48.sail:115)),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151)));(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:115)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)),E_aux(E_app(Id_aux(Id("TR_Failure"),model/riscv_vmem_sv48.sail:115),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("f"),model/riscv_vmem_sv48.sail:115)),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_common.sail:151)),model/riscv_vmem_common.sail:151)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:115)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("PTW_Success"),model/riscv_vmem_sv48.sail:116),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("pAddr"),model/riscv_vmem_sv48.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(P_aux(P_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:116)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_common.sail:150)));(P_aux(P_id(Id_aux(Id("pteAddr"),model/riscv_vmem_sv48.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(P_aux(P_id(Id_aux(Id("level"),model/riscv_vmem_sv48.sail:116)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_level"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("global"),model/riscv_vmem_sv48.sail:116)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6043#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:116)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("nat"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_common.sail:150)),model/riscv_vmem_common.sail:150));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:150)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Result"),model/riscv_vmem_sv48.sail:3),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:3));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_sv48.sail:3))]),model/riscv_vmem_sv48.sail:3)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("update_PTE_Bits"),model/riscv_vmem_sv48.sail:117),[(E_aux(E_app(Id_aux(Id("Mk_PTE_Bits"),model/riscv_vmem_sv48.sail:117),[(E_aux(E_app(Id_aux(Id("_get_SV48_PTE_BITS"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:117)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_common.sail:150)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),:1)),:1)));(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_sv48.sail:117)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112)));(E_aux(E_app(Id_aux(Id("_get_SV48_PTE_Ext"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:117)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_common.sail:150)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_vmem_sv48.sail:118),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:118)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("add_to_TLB48"),model/riscv_vmem_sv48.sail:119),[(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_sv48.sail:119)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_sv48.sail:119)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pAddr"),model/riscv_vmem_sv48.sail:119)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:119)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("pteAddr"),model/riscv_vmem_sv48.sail:119)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv48.sail:119)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_level"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("global"),model/riscv_vmem_sv48.sail:119)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6043#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92)));(E_aux(E_app(Id_aux(Id("TR_Address"),model/riscv_vmem_sv48.sail:120),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("pAddr"),model/riscv_vmem_sv48.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:120)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_sv48.sail:122),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("pbits"),model/riscv_vmem_sv48.sail:122)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59)));(P_aux(P_id(Id_aux(Id("ext"),model/riscv_vmem_sv48.sail:122)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_pte.sail:59),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_pte.sail:59)),model/riscv_pte.sail:59))]),model/riscv_pte.sail:59)),E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("plat_enable_dirty_update"),model/riscv_vmem_sv48.sail:123),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:123)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:35)),model/riscv_platform.sail:35)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6044#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6044#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("TR_Failure"),model/riscv_vmem_sv48.sail:126),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_PTE_Update"),model/riscv_vmem_sv48.sail:126),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:126)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:126)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:128)),model/riscv_vmem_sv48.sail:128),Id_aux(Id("w_pte"),model/riscv_vmem_sv48.sail:128)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_SV48_PTE_BITS"),:1),[(E_aux(E_id(Id_aux(Id("pte"),model/riscv_vmem_sv48.sail:128)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:3)),model/riscv_vmem_common.sail:150)));(E_aux(E_app(Id_aux(Id("_get_PTE_Bits_bits"),:1),[(E_aux(E_id(Id_aux(Id("pbits"),model/riscv_vmem_sv48.sail:128)),Typ_aux(Typ_id(Id_aux(Id("PTE_Bits"),model/riscv_pte.sail:59)),model/riscv_pte.sail:59)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:129)),model/riscv_vmem_sv48.sail:129),Id_aux(Id("w_pte"),model/riscv_vmem_sv48.sail:129)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1)),E_aux(E_app(Id_aux(Id("_update_SV48_PTE_Ext"),:1),[(E_aux(E_id(Id_aux(Id("w_pte"),model/riscv_vmem_sv48.sail:129)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:128)),model/riscv_vmem_sv48.sail:128)));(E_aux(E_id(Id_aux(Id("ext"),model/riscv_vmem_sv48.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),model/riscv_pte.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),:1)),:1))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_case(E_aux(E_app(Id_aux(Id("mem_write_value"),model/riscv_vmem_sv48.sail:130),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_sv48.sail:130),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("pteAddr"),model/riscv_vmem_sv48.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_vmem_sv48.sail:130)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_SV48_PTE_bits"),:1),[(E_aux(E_id(Id_aux(Id("w_pte"),model/riscv_vmem_sv48.sail:130)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:129)),model/riscv_vmem_sv48.sail:129)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv48.sail:130)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv48.sail:130)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_vmem_sv48.sail:130)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_vmem_sv48.sail:131),[(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6047#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("add_to_TLB48"),model/riscv_vmem_sv48.sail:132),[(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_sv48.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_sv48.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("pAddr"),model/riscv_vmem_sv48.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("w_pte"),model/riscv_vmem_sv48.sail:132)),Typ_aux(Typ_id(Id_aux(Id("SV48_PTE"),model/riscv_vmem_sv48.sail:129)),model/riscv_vmem_sv48.sail:129)));(E_aux(E_id(Id_aux(Id("pteAddr"),model/riscv_vmem_sv48.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("level"),model/riscv_vmem_sv48.sail:132)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_level"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("global"),model/riscv_vmem_sv48.sail:132)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6043#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:92)),model/riscv_vmem_sv48.sail:92)));(E_aux(E_app(Id_aux(Id("TR_Address"),model/riscv_vmem_sv48.sail:133),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("pAddr"),model/riscv_vmem_sv48.sail:133)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:150)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:133)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_vmem_sv48.sail:135),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_vmem_sv48.sail:135)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("TR_Failure"),model/riscv_vmem_sv48.sail:137),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("PTW_Access"),model/riscv_vmem_sv48.sail:137),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:137)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("PTW_Error"),model/riscv_ptw.sail:3),[]),Unknown)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_sv48.sail:137)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112))),None))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112))),None))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112))),None))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6040#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6041#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6042#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))],Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_sv48.sail:112));(BE_aux(BE_wreg,model/riscv_vmem_sv48.sail:112));(BE_aux(BE_wmv,model/riscv_vmem_sv48.sail:112));(BE_aux(BE_wmvt,model/riscv_vmem_sv48.sail:112));(BE_aux(BE_escape,model/riscv_vmem_sv48.sail:112));(BE_aux(BE_rmem,model/riscv_vmem_sv48.sail:112));(BE_aux(BE_rmemt,model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("init_vmem_sv48"),model/riscv_vmem_sv48.sail:146),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:146)),model/riscv_vmem_sv48.sail:146),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_vmem_sv48.sail:83))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:146)),model/riscv_vmem_sv48.sail:146)),model/riscv_vmem_sv48.sail:146),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("init_vmem_sv48"),model/riscv_vmem_sv48.sail:146),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:146)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("tlb48"),model/riscv_vmem_sv48.sail:147)),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("None"),model/riscv_vmem_sv48.sail:147),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_sv48.sail:147)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:146)),model/riscv_vmem_sv48.sail:146))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:146)),model/riscv_vmem_sv48.sail:146),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_reg_dec(DEC_aux(DEC_reg(Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_rv64.sail:5))]),model/riscv_vmem_rv64.sail:5),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_vmem_rv64.sail:5))]),model/riscv_vmem_rv64.sail:5),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_vmem_rv64.sail:5)),model/riscv_vmem_rv64.sail:5),Id_aux(Id("satp"),model/riscv_vmem_rv64.sail:5)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("legalize_satp"),model/riscv_vmem_rv64.sail:7),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_vmem_rv64.sail:7)),model/riscv_vmem_rv64.sail:7));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_vmem_rv64.sail:7)),model/riscv_vmem_rv64.sail:7));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_vmem_rv64.sail:7)),model/riscv_vmem_rv64.sail:7))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_vmem_rv64.sail:7)),model/riscv_vmem_rv64.sail:7),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_vmem_rv64.sail:7)),model/riscv_vmem_rv64.sail:7)),model/riscv_vmem_rv64.sail:7),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("legalize_satp"),model/riscv_vmem_rv64.sail:7),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_vmem_rv64.sail:7)),model/riscv_vmem_rv64.sail:7),P_aux(P_id(Id_aux(Id("a"),model/riscv_vmem_rv64.sail:7)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_vmem_rv64.sail:7)),model/riscv_vmem_rv64.sail:7))),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_vmem_rv64.sail:7)),model/riscv_vmem_rv64.sail:7)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_vmem_rv64.sail:7)),model/riscv_vmem_rv64.sail:7),P_aux(P_id(Id_aux(Id("o"),model/riscv_vmem_rv64.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_vmem_rv64.sail:7)),model/riscv_vmem_rv64.sail:7),P_aux(P_id(Id_aux(Id("v"),model/riscv_vmem_rv64.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_vmem_rv64.sail:7)),model/riscv_vmem_rv64.sail:7));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_rv64.sail:7-8)),E_aux(E_app(Id_aux(Id("legalize_satp64"),model/riscv_vmem_rv64.sail:8),[(E_aux(E_id(Id_aux(Id("a"),model/riscv_vmem_rv64.sail:8)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_vmem_rv64.sail:7)),model/riscv_vmem_rv64.sail:7)));(E_aux(E_id(Id_aux(Id("o"),model/riscv_vmem_rv64.sail:8)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("v"),model/riscv_vmem_rv64.sail:8)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:595)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_vmem_rv64.sail:7)),model/riscv_vmem_rv64.sail:7));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("translationMode"),model/riscv_vmem_rv64.sail:12),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12))],Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_rv64.sail:12));(BE_aux(BE_escape,model/riscv_vmem_rv64.sail:12))]),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("translationMode"),model/riscv_vmem_rv64.sail:13),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("priv"),model/riscv_vmem_rv64.sail:13)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_anything"),model/prelude.sail:18),[(E_aux(E_id(Id_aux(Id("priv"),model/riscv_vmem_rv64.sail:14)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_vmem_rv64.sail:14)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:16)),model/prelude.sail:16)),E_aux(E_id(Id_aux(Id("Sbare"),model/riscv_vmem_rv64.sail:14)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("arch"),model/riscv_vmem_rv64.sail:16)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48)),E_aux(E_app(Id_aux(Id("architecture"),model/riscv_vmem_rv64.sail:16),[(E_aux(E_app(Id_aux(Id("get_mstatus_SXL"),model/riscv_vmem_rv64.sail:16),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_vmem_rv64.sail:16)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("arch"),model/riscv_vmem_rv64.sail:17)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_rv64.sail:18),[(P_aux(P_id(Id_aux(Id("RV64"),model/riscv_vmem_rv64.sail:18)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("satp_mode"),model/riscv_vmem_rv64.sail:19)),model/riscv_vmem_rv64.sail:19),P_aux(P_id(Id_aux(Id("mbits"),model/riscv_vmem_rv64.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_types.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_types.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("_get_Satp64_Mode"),:1),[(E_aux(E_app(Id_aux(Id("Mk_Satp64"),model/riscv_vmem_rv64.sail:19),[(E_aux(E_id(Id_aux(Id("satp"),model/riscv_vmem_rv64.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Satp64"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("satp64Mode_of_bits"),model/riscv_vmem_rv64.sail:20),[(E_aux(E_id(Id_aux(Id("RV64"),model/riscv_vmem_rv64.sail:20)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:46)),Unknown)));(E_aux(E_id(Id_aux(Id("mbits"),model/riscv_vmem_rv64.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_types.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),model/riscv_types.sail:295)),model/riscv_types.sail:295))]),model/riscv_types.sail:295)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_rv64.sail:21),[(P_aux(P_id(Id_aux(Id("m"),model/riscv_vmem_rv64.sail:21)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),model/riscv_types.sail:295)),model/riscv_types.sail:295))]),model/riscv_types.sail:295)),E_aux(E_id(Id_aux(Id("m"),model/riscv_vmem_rv64.sail:21)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),../sail/lib/option.sail:10))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_vmem_rv64.sail:22),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_rv64.sail:22)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:295),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:295)),model/riscv_types.sail:295)),model/riscv_types.sail:295))]),model/riscv_types.sail:295)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_vmem_rv64.sail:22),[(E_aux(E_lit(L_aux(L_string("invalid RV64 translation mode in satp"),model/riscv_vmem_rv64.sail:22)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12))),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_rv64.sail:25),[(P_aux(P_id(Id_aux(Id("RV32"),model/riscv_vmem_rv64.sail:25)),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("s"),model/riscv_vmem_rv64.sail:26)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)),E_aux(E_app(Id_aux(Id("Mk_Satp32"),model/riscv_vmem_rv64.sail:26),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("satp"),model/riscv_vmem_rv64.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_vmem_rv64.sail:26)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_vmem_rv64.sail:26)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Satp32_Mode"),:1),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_vmem_rv64.sail:27)),Typ_aux(Typ_id(Id_aux(Id("Satp32"),:1)),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_vmem_rv64.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_id(Id_aux(Id("Sbare"),model/riscv_vmem_rv64.sail:27)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown)),E_aux(E_id(Id_aux(Id("Sv32"),model/riscv_vmem_rv64.sail:27)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_types.sail:293)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12))),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_vmem_rv64.sail:29),[(E_aux(E_lit(L_aux(L_string("unsupported address translation arch"),model/riscv_vmem_rv64.sail:29)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12))),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12))),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12))],Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_rv64.sail:12));(BE_aux(BE_escape,model/riscv_vmem_rv64.sail:12))]),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("translateAddr"),model/riscv_vmem_rv64.sail:36),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36))],Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_vmem_rv64.sail:36));(BE_aux(BE_rmem,model/riscv_vmem_rv64.sail:36));(BE_aux(BE_rmemt,model/riscv_vmem_rv64.sail:36));(BE_aux(BE_rreg,model/riscv_vmem_rv64.sail:36));(BE_aux(BE_wmv,model/riscv_vmem_rv64.sail:36));(BE_aux(BE_wmvt,model/riscv_vmem_rv64.sail:36));(BE_aux(BE_wreg,model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("translateAddr"),model/riscv_vmem_rv64.sail:37),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("vAddr"),model/riscv_vmem_rv64.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("ac"),model/riscv_vmem_rv64.sail:37)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:37-64)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_rv64.sail:38)),model/riscv_vmem_rv64.sail:38),P_aux(P_id(Id_aux(Id("effPriv"),model/riscv_vmem_rv64.sail:38)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_rv64.sail:38)),model/riscv_vmem_rv64.sail:38))),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_rv64.sail:38)),model/riscv_vmem_rv64.sail:38)),E_aux(E_case(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_rv64.sail:38)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Execute"),model/riscv_vmem_rv64.sail:39),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_rv64.sail:39)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_vmem_rv64.sail:39)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_app(Id_aux(Id("effectivePrivilege"),model/riscv_vmem_rv64.sail:40),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_vmem_rv64.sail:40)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)));(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_vmem_rv64.sail:40)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:136)),model/riscv_sys_regs.sail:136))),None))]),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_rv64.sail:38)),model/riscv_vmem_rv64.sail:38))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_rv64.sail:42)),model/riscv_vmem_rv64.sail:42),P_aux(P_id(Id_aux(Id("mxr"),model/riscv_vmem_rv64.sail:42)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6106#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_rv64.sail:42)),model/riscv_vmem_rv64.sail:42)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_MXR"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_vmem_rv64.sail:42)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_vmem_rv64.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_rv64.sail:43)),model/riscv_vmem_rv64.sail:43),P_aux(P_id(Id_aux(Id("do_sum"),model/riscv_vmem_rv64.sail:43)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6108#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_vmem_rv64.sail:43)),model/riscv_vmem_rv64.sail:43)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_SUM"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_vmem_rv64.sail:43)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_vmem_rv64.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:44)),model/riscv_vmem_rv64.sail:44),P_aux(P_id(Id_aux(Id("mode"),model/riscv_vmem_rv64.sail:44)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:44)),model/riscv_vmem_rv64.sail:44))),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:44)),model/riscv_vmem_rv64.sail:44)),E_aux(E_app(Id_aux(Id("translationMode"),model/riscv_vmem_rv64.sail:44),[(E_aux(E_id(Id_aux(Id("effPriv"),model/riscv_vmem_rv64.sail:44)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_rv64.sail:38)),model/riscv_vmem_rv64.sail:38)))]),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:12)),model/riscv_vmem_rv64.sail:12))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("asid"),model/riscv_vmem_rv64.sail:46)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("curAsid64"),model/riscv_vmem_rv64.sail:46),[(E_aux(E_id(Id_aux(Id("satp"),model/riscv_vmem_rv64.sail:46)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("ptb"),model/riscv_vmem_rv64.sail:47)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("curPTB64"),model/riscv_vmem_rv64.sail:47),[(E_aux(E_id(Id_aux(Id("satp"),model/riscv_vmem_rv64.sail:47)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_rv64.sail:50)),model/riscv_vmem_rv64.sail:50),P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_rv64.sail:50)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)),E_aux(E_id(Id_aux(Id("init_ext_ptw"),model/riscv_vmem_rv64.sail:50)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("mode"),model/riscv_vmem_rv64.sail:52)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:44)),model/riscv_vmem_rv64.sail:44)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Sbare"),model/riscv_vmem_rv64.sail:53)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:44)),model/riscv_vmem_rv64.sail:44)),E_aux(E_app(Id_aux(Id("TR_Address"),model/riscv_vmem_rv64.sail:53),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_rv64.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_rv64.sail:53)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Sv39"),model/riscv_vmem_rv64.sail:54)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:44)),model/riscv_vmem_rv64.sail:44)),E_aux(E_case(E_aux(E_app(Id_aux(Id("translate39"),model/riscv_vmem_rv64.sail:54),[(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_rv64.sail:54)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ptb"),model/riscv_vmem_rv64.sail:54)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_rv64.sail:54)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(38),model/riscv_vmem_rv64.sail:54)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(38),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_vmem_rv64.sail:54)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(38),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_rv64.sail:54)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)));(E_aux(E_id(Id_aux(Id("effPriv"),model/riscv_vmem_rv64.sail:54)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_rv64.sail:38)),model/riscv_vmem_rv64.sail:38)));(E_aux(E_id(Id_aux(Id("mxr"),model/riscv_vmem_rv64.sail:54)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6106#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("do_sum"),model/riscv_vmem_rv64.sail:54)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6108#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_id(Id_aux(Id("SV39_LEVELS"),model/riscv_vmem_rv64.sail:54)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_vmem_rv64.sail:54)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(3),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_rv64.sail:54)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Address"),model/riscv_vmem_rv64.sail:55),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("pa"),model/riscv_vmem_rv64.sail:55)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_rv64.sail:55)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)),E_aux(E_app(Id_aux(Id("TR_Address"),model/riscv_vmem_rv64.sail:55),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_rv64.sail:55),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("pa"),model/riscv_vmem_rv64.sail:55)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_rv64.sail:55)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Failure"),model/riscv_vmem_rv64.sail:56),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("f"),model/riscv_vmem_rv64.sail:56)),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_common.sail:158)));(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_rv64.sail:56)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv39.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv39.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_sv39.sail:112))]),model/riscv_vmem_sv39.sail:112)),E_aux(E_app(Id_aux(Id("TR_Failure"),model/riscv_vmem_rv64.sail:56),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("translationException"),model/riscv_vmem_rv64.sail:56),[(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_rv64.sail:56)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)));(E_aux(E_id(Id_aux(Id("f"),model/riscv_vmem_rv64.sail:56)),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv39.sail:112)),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_rv64.sail:56)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Sv48"),model/riscv_vmem_rv64.sail:58)),Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:44)),model/riscv_vmem_rv64.sail:44)),E_aux(E_case(E_aux(E_app(Id_aux(Id("translate48"),model/riscv_vmem_rv64.sail:58),[(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_rv64.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ptb"),model/riscv_vmem_rv64.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("vAddr"),model/riscv_vmem_rv64.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(47),model/riscv_vmem_rv64.sail:58)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(47),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_vmem_rv64.sail:58)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(47),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_rv64.sail:58)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)));(E_aux(E_id(Id_aux(Id("effPriv"),model/riscv_vmem_rv64.sail:58)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_vmem_rv64.sail:38)),model/riscv_vmem_rv64.sail:38)));(E_aux(E_id(Id_aux(Id("mxr"),model/riscv_vmem_rv64.sail:58)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6106#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("do_sum"),model/riscv_vmem_rv64.sail:58)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6108#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_id(Id_aux(Id("SV48_LEVELS"),model/riscv_vmem_rv64.sail:58)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_vmem_rv64.sail:58)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_rv64.sail:58)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Address"),model/riscv_vmem_rv64.sail:59),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("pa"),model/riscv_vmem_rv64.sail:59)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_rv64.sail:59)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112)),E_aux(E_app(Id_aux(Id("TR_Address"),model/riscv_vmem_rv64.sail:59),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_vmem_rv64.sail:59),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("pa"),model/riscv_vmem_rv64.sail:59)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_rv64.sail:59)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Failure"),model/riscv_vmem_rv64.sail:60),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("f"),model/riscv_vmem_rv64.sail:60)),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_common.sail:158)));(P_aux(P_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_rv64.sail:60)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_sv48.sail:112),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_common.sail:71)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_sv48.sail:112));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_sv48.sail:112))]),model/riscv_vmem_sv48.sail:112)),E_aux(E_app(Id_aux(Id("TR_Failure"),model/riscv_vmem_rv64.sail:60),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("translationException"),model/riscv_vmem_rv64.sail:60),[(E_aux(E_id(Id_aux(Id("ac"),model/riscv_vmem_rv64.sail:60)),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)));(E_aux(E_id(Id_aux(Id("f"),model/riscv_vmem_rv64.sail:60)),Typ_aux(Typ_id(Id_aux(Id("PTW_Error"),model/riscv_vmem_sv48.sail:112)),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_ptw.sail:26)),model/riscv_ptw.sail:26)));(E_aux(E_id(Id_aux(Id("ext_ptw"),model/riscv_vmem_rv64.sail:60)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_common.sail:156),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("SATPMode"),model/riscv_vmem_rv64.sail:44)),model/riscv_vmem_rv64.sail:44)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_vmem_rv64.sail:62),[(E_aux(E_lit(L_aux(L_string("unsupported address translation scheme"),model/riscv_vmem_rv64.sail:62)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36))),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36))],Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_vmem_rv64.sail:36));(BE_aux(BE_rmem,model/riscv_vmem_rv64.sail:36));(BE_aux(BE_rmemt,model/riscv_vmem_rv64.sail:36));(BE_aux(BE_rreg,model/riscv_vmem_rv64.sail:36));(BE_aux(BE_wmv,model/riscv_vmem_rv64.sail:36));(BE_aux(BE_wmvt,model/riscv_vmem_rv64.sail:36));(BE_aux(BE_wreg,model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("flush_TLB"),model/riscv_vmem_rv64.sail:66),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:66),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:66),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_rv64.sail:66)),model/riscv_vmem_rv64.sail:66),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_rv64.sail:66));(BE_aux(BE_wreg,model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66)),model/riscv_vmem_rv64.sail:66)),model/riscv_vmem_rv64.sail:66))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_rv64.sail:67)),model/riscv_vmem_rv64.sail:67)),model/riscv_vmem_rv64.sail:67),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("flush_TLB"),model/riscv_vmem_rv64.sail:67),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("asid_xlen"),model/riscv_vmem_rv64.sail:67)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:66),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66)));(P_aux(P_id(Id_aux(Id("addr_xlen"),model/riscv_vmem_rv64.sail:67)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:66),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:66),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:66),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:67-81)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("vaddr39"),model/riscv_vmem_rv64.sail:69)),model/riscv_vmem_rv64.sail:69)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("vaddr48"),model/riscv_vmem_rv64.sail:69)),model/riscv_vmem_rv64.sail:69)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69),P_aux(P_tup([(P_aux(P_id(Id_aux(Id("addr39"),model/riscv_vmem_rv64.sail:69)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69)));(P_aux(P_id(Id_aux(Id("addr48"),model/riscv_vmem_rv64.sail:69)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69))),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69)),E_aux(E_case(E_aux(E_id(Id_aux(Id("addr_xlen"),model/riscv_vmem_rv64.sail:70)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:66),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_vmem_rv64.sail:71),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_rv64.sail:71)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:66),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66)),E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("None"),model/riscv_vmem_rv64.sail:71),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_rv64.sail:71)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("None"),model/riscv_vmem_rv64.sail:71),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_rv64.sail:71)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_rv64.sail:72),[(P_aux(P_id(Id_aux(Id("a"),model/riscv_vmem_rv64.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:66),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66)),E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("Some"),model/riscv_vmem_rv64.sail:72),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("a"),model/riscv_vmem_rv64.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)));(E_aux(E_lit(L_aux(L_num(38),model/riscv_vmem_rv64.sail:72)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(38),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_vmem_rv64.sail:72)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(38),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_vmem_rv64.sail:72),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("a"),model/riscv_vmem_rv64.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)));(E_aux(E_lit(L_aux(L_num(47),model/riscv_vmem_rv64.sail:72)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(47),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_vmem_rv64.sail:72)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(47),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69))),None))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:74),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("asid64"),model/riscv_vmem_rv64.sail:74)),model/riscv_vmem_rv64.sail:74)),model/riscv_vmem_rv64.sail:74))]),model/riscv_vmem_rv64.sail:74),P_aux(P_id(Id_aux(Id("asid"),model/riscv_vmem_rv64.sail:74)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:74),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:74))]),model/riscv_vmem_rv64.sail:74))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:74),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:74))]),model/riscv_vmem_rv64.sail:74)),E_aux(E_case(E_aux(E_id(Id_aux(Id("asid_xlen"),model/riscv_vmem_rv64.sail:75)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:66),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_vmem_rv64.sail:76),[(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_rv64.sail:76)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:66),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66)),E_aux(E_app(Id_aux(Id("None"),model/riscv_vmem_rv64.sail:76),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_rv64.sail:76)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_vmem_rv64.sail:77),[(P_aux(P_id(Id_aux(Id("a"),model/riscv_vmem_rv64.sail:77)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:66),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_vmem_rv64.sail:77),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("a"),model/riscv_vmem_rv64.sail:77)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)));(E_aux(E_lit(L_aux(L_num(15),model/riscv_vmem_rv64.sail:77)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_vmem_rv64.sail:77)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(15),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:74),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:74))]),model/riscv_vmem_rv64.sail:74))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("flush_TLB39"),model/riscv_vmem_rv64.sail:79),[(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_rv64.sail:79)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:74),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:74))]),model/riscv_vmem_rv64.sail:74)));(E_aux(E_id(Id_aux(Id("addr39"),model/riscv_vmem_rv64.sail:79)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_common.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:101)),model/riscv_vmem_sv39.sail:101)));(E_aux(E_app(Id_aux(Id("flush_TLB48"),model/riscv_vmem_rv64.sail:80),[(E_aux(E_id(Id_aux(Id("asid"),model/riscv_vmem_rv64.sail:80)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:74),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_common.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:74))]),model/riscv_vmem_rv64.sail:74)));(E_aux(E_id(Id_aux(Id("addr48"),model/riscv_vmem_rv64.sail:80)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:69),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_common.sail:122)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:69))]),model/riscv_vmem_rv64.sail:69)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:101)),model/riscv_vmem_sv48.sail:101)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_rv64.sail:66)),model/riscv_vmem_rv64.sail:66))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_rv64.sail:66)),model/riscv_vmem_rv64.sail:66)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_rv64.sail:66)),model/riscv_vmem_rv64.sail:66))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_rv64.sail:66)),model/riscv_vmem_rv64.sail:66)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_rv64.sail:66)),model/riscv_vmem_rv64.sail:66))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:66),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66));(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_rv64.sail:66),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_rv64.sail:66)),model/riscv_vmem_rv64.sail:66),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_vmem_rv64.sail:66));(BE_aux(BE_wreg,model/riscv_vmem_rv64.sail:66))]),model/riscv_vmem_rv64.sail:66)),model/riscv_vmem_rv64.sail:66)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("init_vmem"),model/riscv_vmem_rv64.sail:83),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_rv64.sail:83)),model/riscv_vmem_rv64.sail:83),Effect_aux(Effect_set([(BE_aux(BE_wreg,model/riscv_vmem_sv39.sail:83))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_rv64.sail:83)),model/riscv_vmem_rv64.sail:83)),model/riscv_vmem_rv64.sail:83),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("init_vmem"),model/riscv_vmem_rv64.sail:83),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_vmem_rv64.sail:83)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("init_vmem_sv39"),model/riscv_vmem_rv64.sail:84),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_rv64.sail:84)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv39.sail:184)),model/riscv_vmem_sv39.sail:184)));(E_aux(E_app(Id_aux(Id("init_vmem_sv48"),model/riscv_vmem_rv64.sail:85),[(E_aux(E_lit(L_aux(L_unit,model/riscv_vmem_rv64.sail:85)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_sv48.sail:146)),model/riscv_vmem_sv48.sail:146)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_rv64.sail:83)),model/riscv_vmem_rv64.sail:83))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_rv64.sail:83)),model/riscv_vmem_rv64.sail:83),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_scattered(SD_aux(SD_variant(Id_aux(Id("ast"),model/riscv_insts_begin.sail:6),TypQ_aux(TypQ_no_forall,Unknown)),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("execute"),model/riscv_insts_begin.sail:9),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("assembly"),model/riscv_insts_begin.sail:12),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("encdec"),model/riscv_insts_begin.sail:15),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("encdec_compressed"),model/riscv_insts_begin.sail:18),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:6),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_base.sail:6)),model/riscv_insts_base.sail:6))]),model/riscv_insts_base.sail:6));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:6)),model/riscv_insts_base.sail:6));(Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:6)),model/riscv_insts_base.sail:6))]),model/riscv_insts_base.sail:6),Id_aux(Id("UTYPE"),model/riscv_insts_base.sail:6)),model/riscv_insts_base.sail:6)),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("encdec_uop"),model/riscv_insts_base.sail:8),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:8)),model/riscv_insts_base.sail:8),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/riscv_insts_base.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:8)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("encdec_uop"),model/riscv_insts_base.sail:8),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:8)),model/riscv_insts_base.sail:8),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:8),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/riscv_insts_base.sail:8)),model/riscv_insts_base.sail:8))]),model/riscv_insts_base.sail:8)),model/riscv_insts_base.sail:8)),model/riscv_insts_base.sail:8),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_LUI"),model/riscv_insts_base.sail:9)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:8)),model/riscv_insts_base.sail:8))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("0110111"),model/riscv_insts_base.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:8)),model/riscv_insts_base.sail:8),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/riscv_insts_base.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:8)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_AUIPC"),model/riscv_insts_base.sail:10)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:8)),model/riscv_insts_base.sail:8))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("0010111"),model/riscv_insts_base.sail:10)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:8)),model/riscv_insts_base.sail:8),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/riscv_insts_base.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:8)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:13),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("UTYPE"),model/riscv_insts_base.sail:13),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_base.sail:6)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:13)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:6)),model/riscv_insts_base.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:14)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_base.sail:6)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_base.sail:6)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_base.sail:6)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:14)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_app(Id_aux(Id("encdec_uop"),model/riscv_insts_base.sail:14),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:14)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:8)),model/riscv_insts_base.sail:8)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/riscv_insts_base.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:16),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("UTYPE"),model/riscv_insts_base.sail:16),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:16)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_base.sail:6)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:16)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_insts_base.sail:16)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:6)),model/riscv_insts_base.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_base.sail:6)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:6)),model/riscv_insts_base.sail:6))]),model/riscv_insts_base.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:17)),model/riscv_insts_base.sail:17),P_aux(P_id(Id_aux(Id("off"),model/riscv_insts_base.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_base.sail:17),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_base.sail:6)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_hex("000"),model/riscv_insts_base.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(20),model/riscv_insts_base.sail:6),Nexp_aux(Nexp_constant(12),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:18)),model/riscv_insts_base.sail:18),P_aux(P_id(Id_aux(Id("ret"),model/riscv_insts_base.sail:18)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("op"),model/riscv_insts_base.sail:18)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:6)),model/riscv_insts_base.sail:6)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_LUI"),model/riscv_insts_base.sail:19)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:6)),model/riscv_insts_base.sail:6)),E_aux(E_id(Id_aux(Id("off"),model/riscv_insts_base.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_AUIPC"),model/riscv_insts_base.sail:20)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:6)),model/riscv_insts_base.sail:6)),E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_app(Id_aux(Id("get_arch_pc"),model/riscv_insts_base.sail:20),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:20)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("off"),model/riscv_insts_base.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ret"),model/riscv_insts_base.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:23)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("utype_mnemonic"),model/riscv_insts_base.sail:26),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("utype_mnemonic"),model/riscv_insts_base.sail:26),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_LUI"),model/riscv_insts_base.sail:27)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("lui"),model/riscv_insts_base.sail:27)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_AUIPC"),model/riscv_insts_base.sail:28)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("auipc"),model/riscv_insts_base.sail:28)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:31),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("UTYPE"),model/riscv_insts_base.sail:31),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_base.sail:6)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:31)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:6)),model/riscv_insts_base.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_app(Id_aux(Id("utype_mnemonic"),model/riscv_insts_base.sail:32),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:32)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:26)),model/riscv_insts_base.sail:26)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:32),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:32)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:32),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:32)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:32),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:32)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_20"),model/riscv_insts_base.sail:32),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:32)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/prelude_mapping.sail:395)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:35),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:35),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/riscv_insts_base.sail:35)),model/riscv_insts_base.sail:35))]),model/riscv_insts_base.sail:35));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:35)),model/riscv_insts_base.sail:35))]),model/riscv_insts_base.sail:35),Id_aux(Id("RISCV_JAL"),model/riscv_insts_base.sail:35)),model/riscv_insts_base.sail:35)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:37),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("RISCV_JAL"),model/riscv_insts_base.sail:37),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm_19"),model/riscv_insts_base.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:38)),model/riscv_insts_base.sail:38))]),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm_7_0"),model/riscv_insts_base.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:38)),model/riscv_insts_base.sail:38))]),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm_8"),model/riscv_insts_base.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:38)),model/riscv_insts_base.sail:38))]),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm_18_13"),model/riscv_insts_base.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:38)),model/riscv_insts_base.sail:38))]),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm_12_9"),model/riscv_insts_base.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:38)),model/riscv_insts_base.sail:38))]),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_base.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm_19"),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:38)),model/riscv_insts_base.sail:38))]),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm_18_13"),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:38)),model/riscv_insts_base.sail:38))]),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm_12_9"),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:38)),model/riscv_insts_base.sail:38))]),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm_8"),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:38)),model/riscv_insts_base.sail:38))]),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm_7_0"),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:38),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:38)),model/riscv_insts_base.sail:38))]),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:38)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("1101111"),model/riscv_insts_base.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:52),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("RISCV_JAL"),model/riscv_insts_base.sail:52),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/riscv_insts_base.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/riscv_insts_base.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:35)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:53)),model/riscv_insts_base.sail:53),P_aux(P_id(Id_aux(Id("t"),model/riscv_insts_base.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("PC"),model/riscv_insts_base.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_base.sail:53),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/riscv_insts_base.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("ext_control_check_pc"),model/riscv_insts_base.sail:55),[(E_aux(E_id(Id_aux(Id("t"),model/riscv_insts_base.sail:55)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:36))]),model/riscv_addr_checks.sail:36)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_ControlAddr_Error"),model/riscv_insts_base.sail:56),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_base.sail:56)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks_common.sail:16)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:36))]),model/riscv_addr_checks.sail:36)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("ext_handle_control_check_error"),model/riscv_insts_base.sail:57),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_base.sail:57)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks_common.sail:16)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:39)),model/riscv_addr_checks.sail:39)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:58)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_ControlAddr_OK"),model/riscv_insts_base.sail:60),[(P_aux(P_id(Id_aux(Id("target"),model/riscv_insts_base.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:36))]),model/riscv_addr_checks.sail:36)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("bit_to_bool"),model/riscv_insts_base.sail:62),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("target"),model/riscv_insts_base.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_base.sail:62)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:132)),model/prelude.sail:132)));(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("haveRVC"),model/riscv_insts_base.sail:62),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:62)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:99)),model/riscv_sys_regs.sail:99)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6344#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6344#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6347#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6346#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex6347#"),Unknown)),Unknown),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6346#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_base.sail:64),[(E_aux(E_id(Id_aux(Id("target"),model/riscv_insts_base.sail:64)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("E_Fetch_Addr_Align"),model/riscv_insts_base.sail:64),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:64)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:65)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:67)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("get_next_pc"),model/riscv_insts_base.sail:67),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:67)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_app(Id_aux(Id("set_next_pc"),model/riscv_insts_base.sail:68),[(E_aux(E_id(Id_aux(Id("target"),model/riscv_insts_base.sail:68)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:69)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:77),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("RISCV_JAL"),model/riscv_insts_base.sail:77),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:77)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/riscv_insts_base.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:77)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("jal"),model/riscv_insts_base.sail:78)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:78),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:78)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:78),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:78)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:78),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:78)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_21"),model/riscv_insts_base.sail:78),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:78)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/prelude_mapping.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:81),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:81),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),model/riscv_insts_base.sail:81))]),model/riscv_insts_base.sail:81));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:81)),model/riscv_insts_base.sail:81));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:81)),model/riscv_insts_base.sail:81))]),model/riscv_insts_base.sail:81),Id_aux(Id("RISCV_JALR"),model/riscv_insts_base.sail:81)),model/riscv_insts_base.sail:81)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:83),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("RISCV_JALR"),model/riscv_insts_base.sail:83),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:83)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:83)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:83)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("1100111"),model/riscv_insts_base.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:86),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("RISCV_JALR"),model/riscv_insts_base.sail:86),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:86)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:86)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:86)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("jalr"),model/riscv_insts_base.sail:87)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:87),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:87)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:87),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:87)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:87),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:87)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:87),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:87)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:87),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:87)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_12"),model/riscv_insts_base.sail:87),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:87)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:92),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:92),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92))]),model/riscv_insts_base.sail:92));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92));(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92))]),model/riscv_insts_base.sail:92),Id_aux(Id("BTYPE"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92)),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("encdec_bop"),model/riscv_insts_base.sail:94),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:94)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:94)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("encdec_bop"),model/riscv_insts_base.sail:94),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:94),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94))]),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_BEQ"),model/riscv_insts_base.sail:95)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:95)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:94)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:94)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_BNE"),model/riscv_insts_base.sail:96)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("001"),model/riscv_insts_base.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:94)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:94)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_BLT"),model/riscv_insts_base.sail:97)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_base.sail:97)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:94)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:94)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_BGE"),model/riscv_insts_base.sail:98)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("101"),model/riscv_insts_base.sail:98)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:94)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:94)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_BLTU"),model/riscv_insts_base.sail:99)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("110"),model/riscv_insts_base.sail:99)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:94)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:94)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_BGEU"),model/riscv_insts_base.sail:100)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("111"),model/riscv_insts_base.sail:100)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:94)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:94)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:103),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("BTYPE"),model/riscv_insts_base.sail:103),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm7_6"),model/riscv_insts_base.sail:103)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:104),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:104)),model/riscv_insts_base.sail:104))]),model/riscv_insts_base.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm5_0"),model/riscv_insts_base.sail:103)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:104),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:104)),model/riscv_insts_base.sail:104))]),model/riscv_insts_base.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm7_5_0"),model/riscv_insts_base.sail:103)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:104),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:104)),model/riscv_insts_base.sail:104))]),model/riscv_insts_base.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm5_4_1"),model/riscv_insts_base.sail:103)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:104),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:104)),model/riscv_insts_base.sail:104))]),model/riscv_insts_base.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_base.sail:103)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:103)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:103)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:103)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm7_6"),model/riscv_insts_base.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:104),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:104)),model/riscv_insts_base.sail:104))]),model/riscv_insts_base.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm7_5_0"),model/riscv_insts_base.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:104),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:104)),model/riscv_insts_base.sail:104))]),model/riscv_insts_base.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_app(Id_aux(Id("encdec_bop"),model/riscv_insts_base.sail:104),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:104)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:94)),model/riscv_insts_base.sail:94)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:94)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm5_4_1"),model/riscv_insts_base.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:104),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:104)),model/riscv_insts_base.sail:104))]),model/riscv_insts_base.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm5_0"),model/riscv_insts_base.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:104),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:104)),model/riscv_insts_base.sail:104))]),model/riscv_insts_base.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:104)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("1100011"),model/riscv_insts_base.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:106),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("BTYPE"),model/riscv_insts_base.sail:106),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/riscv_insts_base.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_insts_base.sail:106)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/riscv_insts_base.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92))]),model/riscv_insts_base.sail:92)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:107)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:107)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:109)),model/riscv_insts_base.sail:109),P_aux(P_id(Id_aux(Id("taken"),model/riscv_insts_base.sail:109)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6480#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:109)),model/riscv_insts_base.sail:109)),E_aux(E_case(E_aux(E_id(Id_aux(Id("op"),model/riscv_insts_base.sail:109)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_BEQ"),model/riscv_insts_base.sail:110)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:110)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:110)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_BNE"),model/riscv_insts_base.sail:111)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:111)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:111)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_BLT"),model/riscv_insts_base.sail:112)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92)),E_aux(E_app(Id_aux(Operator("<_s"),model/riscv_insts_base.sail:112),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:112)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:112)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:147)),model/prelude.sail:147))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_BGE"),model/riscv_insts_base.sail:113)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92)),E_aux(E_app(Id_aux(Operator(">=_s"),model/riscv_insts_base.sail:113),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:148)),model/prelude.sail:148))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_BLTU"),model/riscv_insts_base.sail:114)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92)),E_aux(E_app(Id_aux(Operator("<_u"),model/riscv_insts_base.sail:114),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:149)),model/prelude.sail:149))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_BGEU"),model/riscv_insts_base.sail:115)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92)),E_aux(E_app(Id_aux(Operator(">=_u"),model/riscv_insts_base.sail:115),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:115)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:115)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:150)),model/prelude.sail:150))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:109)),model/riscv_insts_base.sail:109))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:117)),model/riscv_insts_base.sail:117),P_aux(P_id(Id_aux(Id("t"),model/riscv_insts_base.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("PC"),model/riscv_insts_base.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_base.sail:117),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/riscv_insts_base.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_id(Id_aux(Id("taken"),model/riscv_insts_base.sail:118)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6480#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("ext_control_check_pc"),model/riscv_insts_base.sail:120),[(E_aux(E_id(Id_aux(Id("t"),model/riscv_insts_base.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:36))]),model/riscv_addr_checks.sail:36)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_ControlAddr_Error"),model/riscv_insts_base.sail:121),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_base.sail:121)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks_common.sail:16)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:36))]),model/riscv_addr_checks.sail:36)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("ext_handle_control_check_error"),model/riscv_insts_base.sail:122),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_base.sail:122)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks_common.sail:16)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:39)),model/riscv_addr_checks.sail:39)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:123)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_ControlAddr_OK"),model/riscv_insts_base.sail:125),[(P_aux(P_id(Id_aux(Id("target"),model/riscv_insts_base.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks.sail:36),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:36))]),model/riscv_addr_checks.sail:36)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("bit_to_bool"),model/riscv_insts_base.sail:126),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("target"),model/riscv_insts_base.sail:126)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_base.sail:126)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:132)),model/prelude.sail:132)));(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("haveRVC"),model/riscv_insts_base.sail:126),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:126)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:99)),model/riscv_sys_regs.sail:99)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6505#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6505#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6508#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6507#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex6508#"),Unknown)),Unknown),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6507#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_base.sail:127),[(E_aux(E_id(Id_aux(Id("target"),model/riscv_insts_base.sail:127)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("E_Fetch_Addr_Align"),model/riscv_insts_base.sail:127),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:127)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:128)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("set_next_pc"),model/riscv_insts_base.sail:130),[(E_aux(E_id(Id_aux(Id("target"),model/riscv_insts_base.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:131)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:135)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("btype_mnemonic"),model/riscv_insts_base.sail:138),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("btype_mnemonic"),model/riscv_insts_base.sail:138),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_BEQ"),model/riscv_insts_base.sail:139)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("beq"),model/riscv_insts_base.sail:139)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_BNE"),model/riscv_insts_base.sail:140)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("bne"),model/riscv_insts_base.sail:140)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_BLT"),model/riscv_insts_base.sail:141)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("blt"),model/riscv_insts_base.sail:141)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_BGE"),model/riscv_insts_base.sail:142)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("bge"),model/riscv_insts_base.sail:142)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_BLTU"),model/riscv_insts_base.sail:143)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("bltu"),model/riscv_insts_base.sail:143)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_BGEU"),model/riscv_insts_base.sail:144)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("bgeu"),model/riscv_insts_base.sail:144)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:147),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("BTYPE"),model/riscv_insts_base.sail:147),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:147)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/riscv_insts_base.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:147)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:147)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:147)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_app(Id_aux(Id("btype_mnemonic"),model/riscv_insts_base.sail:148),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:148)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:138)),model/riscv_insts_base.sail:138)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:148),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:148)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:148),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:148)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:148),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:148)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:148),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:148)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:148),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:148)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_13"),model/riscv_insts_base.sail:148),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:148)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/prelude_mapping.sail:262)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:151),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:151),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151))]),model/riscv_insts_base.sail:151));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151));(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151))]),model/riscv_insts_base.sail:151),Id_aux(Id("ITYPE"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151)),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("encdec_iop"),model/riscv_insts_base.sail:153),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:153)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:153)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("encdec_iop"),model/riscv_insts_base.sail:153),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:153),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153))]),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_ADDI"),model/riscv_insts_base.sail:154)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:154)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:153)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:153)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SLTI"),model/riscv_insts_base.sail:155)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("010"),model/riscv_insts_base.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:153)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:153)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SLTIU"),model/riscv_insts_base.sail:156)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("011"),model/riscv_insts_base.sail:156)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:153)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:153)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_ANDI"),model/riscv_insts_base.sail:157)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("111"),model/riscv_insts_base.sail:157)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:153)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:153)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_ORI"),model/riscv_insts_base.sail:158)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("110"),model/riscv_insts_base.sail:158)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:153)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:153)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_XORI"),model/riscv_insts_base.sail:159)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_base.sail:159)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:153)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:153)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:162),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("ITYPE"),model/riscv_insts_base.sail:162),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:162)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:162)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:162)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:162)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:163)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:163)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_app(Id_aux(Id("encdec_iop"),model/riscv_insts_base.sail:163),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:163)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:153)),model/riscv_insts_base.sail:153)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:153)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:163)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0010011"),model/riscv_insts_base.sail:163)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:165),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("ITYPE"),model/riscv_insts_base.sail:165),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_insts_base.sail:165)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151))]),model/riscv_insts_base.sail:151)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:167)),model/riscv_insts_base.sail:167),P_aux(P_id(Id_aux(Id("immext"),model/riscv_insts_base.sail:167)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_base.sail:167),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:167)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:168)),model/riscv_insts_base.sail:168),P_aux(P_id(Id_aux(Id("result"),model/riscv_insts_base.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("op"),model/riscv_insts_base.sail:168)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_ADDI"),model/riscv_insts_base.sail:169)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151)),E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:169)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("immext"),model/riscv_insts_base.sail:169)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLTI"),model/riscv_insts_base.sail:170)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_base.sail:170),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bool_to_bits"),model/riscv_insts_base.sail:170),[(E_aux(E_app(Id_aux(Operator("<_s"),model/riscv_insts_base.sail:170),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:170)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("immext"),model/riscv_insts_base.sail:170)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:147)),model/prelude.sail:147)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLTIU"),model/riscv_insts_base.sail:171)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_base.sail:171),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bool_to_bits"),model/riscv_insts_base.sail:171),[(E_aux(E_app(Id_aux(Operator("<_u"),model/riscv_insts_base.sail:171),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:171)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("immext"),model/riscv_insts_base.sail:171)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:149)),model/prelude.sail:149)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_ANDI"),model/riscv_insts_base.sail:172)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151)),E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:172)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("immext"),model/riscv_insts_base.sail:172)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_ORI"),model/riscv_insts_base.sail:173)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151)),E_aux(E_app(Id_aux(Id("or_vec"),../sail/lib/vector_dec.sail:174),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:173)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("immext"),model/riscv_insts_base.sail:173)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_XORI"),model/riscv_insts_base.sail:174)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151)),E_aux(E_app(Id_aux(Id("xor_vec"),model/prelude.sail:69),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("immext"),model/riscv_insts_base.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:176)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_insts_base.sail:176)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:177)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("itype_mnemonic"),model/riscv_insts_base.sail:180),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("itype_mnemonic"),model/riscv_insts_base.sail:180),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_ADDI"),model/riscv_insts_base.sail:181)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("addi"),model/riscv_insts_base.sail:181)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SLTI"),model/riscv_insts_base.sail:182)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("slti"),model/riscv_insts_base.sail:182)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SLTIU"),model/riscv_insts_base.sail:183)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sltiu"),model/riscv_insts_base.sail:183)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_XORI"),model/riscv_insts_base.sail:184)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("xori"),model/riscv_insts_base.sail:184)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_ORI"),model/riscv_insts_base.sail:185)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("ori"),model/riscv_insts_base.sail:185)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_ANDI"),model/riscv_insts_base.sail:186)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("andi"),model/riscv_insts_base.sail:186)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:189),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("ITYPE"),model/riscv_insts_base.sail:189),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:189)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:189)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:189)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:189)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_app(Id_aux(Id("itype_mnemonic"),model/riscv_insts_base.sail:190),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:190)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:180)),model/riscv_insts_base.sail:180)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:190),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:190)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:190),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:190)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:190),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:190)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:190),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:190)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:190),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:190)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_12"),model/riscv_insts_base.sail:190),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:190)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:193),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:193),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193))]),model/riscv_insts_base.sail:193));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193));(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193))]),model/riscv_insts_base.sail:193),Id_aux(Id("SHIFTIOP"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193)),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("encdec_sop"),model/riscv_insts_base.sail:195),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:195)),model/riscv_insts_base.sail:195),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:195)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("encdec_sop"),model/riscv_insts_base.sail:195),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:195)),model/riscv_insts_base.sail:195),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:195),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:195)),model/riscv_insts_base.sail:195))]),model/riscv_insts_base.sail:195)),model/riscv_insts_base.sail:195)),model/riscv_insts_base.sail:195),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SLLI"),model/riscv_insts_base.sail:196)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:195)),model/riscv_insts_base.sail:195))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("001"),model/riscv_insts_base.sail:196)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:195)),model/riscv_insts_base.sail:195),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SRLI"),model/riscv_insts_base.sail:197)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:195)),model/riscv_insts_base.sail:195))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("101"),model/riscv_insts_base.sail:197)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:195)),model/riscv_insts_base.sail:195),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:195)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SRAI"),model/riscv_insts_base.sail:198)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:195)),model/riscv_insts_base.sail:195))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("101"),model/riscv_insts_base.sail:198)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:195)),model/riscv_insts_base.sail:195),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_base.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:195)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:201),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("SHIFTIOP"),model/riscv_insts_base.sail:201),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SLLI"),model/riscv_insts_base.sail:201)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("000000"),model/riscv_insts_base.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("001"),model/riscv_insts_base.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0010011"),model/riscv_insts_base.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:201)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)));(E_aux(E_app(Id_aux(Id("eq_bit"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(5),model/riscv_insts_base.sail:201)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)));(E_aux(E_lit(L_aux(L_zero,model/riscv_insts_base.sail:201)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6651#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex6651#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:202),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("SHIFTIOP"),model/riscv_insts_base.sail:202),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SRLI"),model/riscv_insts_base.sail:202)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("000000"),model/riscv_insts_base.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("101"),model/riscv_insts_base.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0010011"),model/riscv_insts_base.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:202)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)));(E_aux(E_app(Id_aux(Id("eq_bit"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(5),model/riscv_insts_base.sail:202)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)));(E_aux(E_lit(L_aux(L_zero,model/riscv_insts_base.sail:202)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6656#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex6656#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:203),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("SHIFTIOP"),model/riscv_insts_base.sail:203),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SRAI"),model/riscv_insts_base.sail:203)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("010000"),model/riscv_insts_base.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("101"),model/riscv_insts_base.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0010011"),model/riscv_insts_base.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:203)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)));(E_aux(E_app(Id_aux(Id("eq_bit"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(5),model/riscv_insts_base.sail:203)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)));(E_aux(E_lit(L_aux(L_zero,model/riscv_insts_base.sail:203)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6661#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex6661#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:205),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("SHIFTIOP"),model/riscv_insts_base.sail:205),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:205)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:205)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:205)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_insts_base.sail:205)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193))]),model/riscv_insts_base.sail:193)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:206)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:206)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:208)),model/riscv_insts_base.sail:208),P_aux(P_id(Id_aux(Id("result"),model/riscv_insts_base.sail:208)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("op"),model/riscv_insts_base.sail:208)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLLI"),model/riscv_insts_base.sail:209)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_base.sail:209)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_app(Id_aux(Id("shift_bits_left"),model/prelude.sail:169),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:210)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:210)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_base.sail:210)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:210)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("shift_bits_left"),model/prelude.sail:169),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRLI"),model/riscv_insts_base.sail:212)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_base.sail:212)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_app(Id_aux(Id("shift_bits_right"),model/prelude.sail:168),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:213)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:213)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_base.sail:213)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:213)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("shift_bits_right"),model/prelude.sail:168),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:214)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:214)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRAI"),model/riscv_insts_base.sail:215)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_base.sail:215)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_app(Id_aux(Id("shift_right_arith32"),model/riscv_insts_base.sail:216),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:216)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:216)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_base.sail:216)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:216)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("shift_right_arith64"),model/riscv_insts_base.sail:217),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:217)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:217)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:173)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:219)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_insts_base.sail:219)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:220)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("shiftiop_mnemonic"),model/riscv_insts_base.sail:223),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("shiftiop_mnemonic"),model/riscv_insts_base.sail:223),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SLLI"),model/riscv_insts_base.sail:224)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("slli"),model/riscv_insts_base.sail:224)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SRLI"),model/riscv_insts_base.sail:225)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("srli"),model/riscv_insts_base.sail:225)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SRAI"),model/riscv_insts_base.sail:226)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("srai"),model/riscv_insts_base.sail:226)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:229),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("SHIFTIOP"),model/riscv_insts_base.sail:229),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:229)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:229)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:229)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:229)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_app(Id_aux(Id("shiftiop_mnemonic"),model/riscv_insts_base.sail:230),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:230)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:223)),model/riscv_insts_base.sail:223)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:230),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:230)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:230),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:230)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:230),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:230)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:230),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:230)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:230),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:230)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_6"),model/riscv_insts_base.sail:230),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:230)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:233),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233));(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233))]),model/riscv_insts_base.sail:233),Id_aux(Id("RTYPE"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:235),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("RTYPE"),model/riscv_insts_base.sail:235),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:235)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:235)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:235)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_ADD"),model/riscv_insts_base.sail:235)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_base.sail:235)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:235)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:235)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:235)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:235)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0110011"),model/riscv_insts_base.sail:235)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:236),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("RTYPE"),model/riscv_insts_base.sail:236),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:236)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:236)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:236)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SLT"),model/riscv_insts_base.sail:236)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_base.sail:236)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:236)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:236)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("010"),model/riscv_insts_base.sail:236)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:236)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0110011"),model/riscv_insts_base.sail:236)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:237),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("RTYPE"),model/riscv_insts_base.sail:237),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SLTU"),model/riscv_insts_base.sail:237)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_base.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("011"),model/riscv_insts_base.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0110011"),model/riscv_insts_base.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:238),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("RTYPE"),model/riscv_insts_base.sail:238),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_AND"),model/riscv_insts_base.sail:238)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_base.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("111"),model/riscv_insts_base.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0110011"),model/riscv_insts_base.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:239),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("RTYPE"),model/riscv_insts_base.sail:239),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:239)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:239)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:239)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_OR"),model/riscv_insts_base.sail:239)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_base.sail:239)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:239)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:239)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("110"),model/riscv_insts_base.sail:239)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:239)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0110011"),model/riscv_insts_base.sail:239)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:240),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("RTYPE"),model/riscv_insts_base.sail:240),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:240)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:240)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:240)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_XOR"),model/riscv_insts_base.sail:240)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_base.sail:240)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:240)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:240)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_base.sail:240)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:240)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0110011"),model/riscv_insts_base.sail:240)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:241),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("RTYPE"),model/riscv_insts_base.sail:241),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:241)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:241)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:241)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SLL"),model/riscv_insts_base.sail:241)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_base.sail:241)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:241)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:241)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("001"),model/riscv_insts_base.sail:241)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:241)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0110011"),model/riscv_insts_base.sail:241)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:242),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("RTYPE"),model/riscv_insts_base.sail:242),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:242)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:242)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:242)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SRL"),model/riscv_insts_base.sail:242)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_base.sail:242)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:242)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:242)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("101"),model/riscv_insts_base.sail:242)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:242)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0110011"),model/riscv_insts_base.sail:242)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:243),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("RTYPE"),model/riscv_insts_base.sail:243),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:243)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:243)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:243)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SUB"),model/riscv_insts_base.sail:243)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0100000"),model/riscv_insts_base.sail:243)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:243)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:243)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:243)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:243)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0110011"),model/riscv_insts_base.sail:243)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:244),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("RTYPE"),model/riscv_insts_base.sail:244),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:244)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:244)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:244)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SRA"),model/riscv_insts_base.sail:244)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0100000"),model/riscv_insts_base.sail:244)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:244)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:244)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("101"),model/riscv_insts_base.sail:244)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:244)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0110011"),model/riscv_insts_base.sail:244)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:246),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("RTYPE"),model/riscv_insts_base.sail:246),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:246)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:246)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:246)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_insts_base.sail:246)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233))]),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:247)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:247)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:248)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:248)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:249)),model/riscv_insts_base.sail:249),P_aux(P_id(Id_aux(Id("result"),model/riscv_insts_base.sail:249)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("op"),model/riscv_insts_base.sail:249)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_ADD"),model/riscv_insts_base.sail:250)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)),E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:250)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:250)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLT"),model/riscv_insts_base.sail:251)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_base.sail:251),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bool_to_bits"),model/riscv_insts_base.sail:251),[(E_aux(E_app(Id_aux(Operator("<_s"),model/riscv_insts_base.sail:251),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:251)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:251)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:147)),model/prelude.sail:147)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLTU"),model/riscv_insts_base.sail:252)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_base.sail:252),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bool_to_bits"),model/riscv_insts_base.sail:252),[(E_aux(E_app(Id_aux(Operator("<_u"),model/riscv_insts_base.sail:252),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:252)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:252)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:149)),model/prelude.sail:149)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/prelude.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_AND"),model/riscv_insts_base.sail:253)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)),E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:253)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:253)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_OR"),model/riscv_insts_base.sail:254)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)),E_aux(E_app(Id_aux(Id("or_vec"),../sail/lib/vector_dec.sail:174),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:254)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:254)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_XOR"),model/riscv_insts_base.sail:255)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)),E_aux(E_app(Id_aux(Id("xor_vec"),model/prelude.sail:69),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:255)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:255)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLL"),model/riscv_insts_base.sail:256)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_base.sail:256)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_app(Id_aux(Id("shift_bits_left"),model/prelude.sail:169),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:257)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:257)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_base.sail:257)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:257)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("shift_bits_left"),model/prelude.sail:169),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:258)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:258)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(5),model/riscv_insts_base.sail:258)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:258)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(5),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRL"),model/riscv_insts_base.sail:259)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_base.sail:259)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_app(Id_aux(Id("shift_bits_right"),model/prelude.sail:168),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:260)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:260)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_base.sail:260)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:260)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("shift_bits_right"),model/prelude.sail:168),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:261)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:261)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(5),model/riscv_insts_base.sail:261)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:261)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(5),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SUB"),model/riscv_insts_base.sail:262)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)),E_aux(E_app(Id_aux(Id("sub_vec"),model/prelude.sail:75),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:262)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:262)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRA"),model/riscv_insts_base.sail:263)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_base.sail:263)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_app(Id_aux(Id("shift_right_arith32"),model/riscv_insts_base.sail:264),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:264)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:264)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_base.sail:264)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:264)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("shift_right_arith64"),model/riscv_insts_base.sail:265),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:265)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:265)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(5),model/riscv_insts_base.sail:265)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:265)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(5),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/prelude.sail:173)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:267)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_insts_base.sail:267)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:268)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("rtype_mnemonic"),model/riscv_insts_base.sail:271),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("rtype_mnemonic"),model/riscv_insts_base.sail:271),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_ADD"),model/riscv_insts_base.sail:272)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("add"),model/riscv_insts_base.sail:272)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SLT"),model/riscv_insts_base.sail:273)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("slt"),model/riscv_insts_base.sail:273)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SLTU"),model/riscv_insts_base.sail:274)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sltu"),model/riscv_insts_base.sail:274)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_AND"),model/riscv_insts_base.sail:275)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("and"),model/riscv_insts_base.sail:275)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_OR"),model/riscv_insts_base.sail:276)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("or"),model/riscv_insts_base.sail:276)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_XOR"),model/riscv_insts_base.sail:277)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("xor"),model/riscv_insts_base.sail:277)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SLL"),model/riscv_insts_base.sail:278)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sll"),model/riscv_insts_base.sail:278)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SRL"),model/riscv_insts_base.sail:279)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("srl"),model/riscv_insts_base.sail:279)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SUB"),model/riscv_insts_base.sail:280)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sub"),model/riscv_insts_base.sail:280)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SRA"),model/riscv_insts_base.sail:281)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sra"),model/riscv_insts_base.sail:281)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:284),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("RTYPE"),model/riscv_insts_base.sail:284),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:284)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_app(Id_aux(Id("rtype_mnemonic"),model/riscv_insts_base.sail:285),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:285)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:271)),model/riscv_insts_base.sail:271)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:285),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:285)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:285),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:285)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:285),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:285)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:285),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:285)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:285),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:285)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:285),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:285)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:288),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:288),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288))]),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288))]),model/riscv_insts_base.sail:288),Id_aux(Id("LOAD"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:292),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("LOAD"),model/riscv_insts_base.sail:292),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:292)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:288)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:292)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:292)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("is_unsigned"),model/riscv_insts_base.sail:292)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6796#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_base.sail:292)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288)));(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_base.sail:292)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_base.sail:292)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("lt_int"),../sail/lib/flow.sail:49),[(E_aux(E_app(Id_aux(Id("word_width_bytes"),model/riscv_insts_base.sail:292),[(E_aux(E_id(Id_aux(Id("size"),model/riscv_insts_base.sail:292)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:356),Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:356),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))]),model/riscv_types.sail:356)),model/riscv_types.sail:356)));(E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex6810#"),Unknown)),Unknown))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6810#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6810#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6810#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6810#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6810#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:40)),Unknown))]),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("not_bool"),model/riscv_insts_base.sail:292),[(E_aux(E_id(Id_aux(Id("is_unsigned"),model/riscv_insts_base.sail:292)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6796#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6796#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)));(E_aux(E_cast(Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("word_width_bytes"),model/riscv_insts_base.sail:292),[(E_aux(E_id(Id_aux(Id("size"),model/riscv_insts_base.sail:292)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:356),Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:356),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))]),model/riscv_types.sail:356)),model/riscv_types.sail:356)));(E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex6816#"),Unknown)),Unknown))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6816#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6816#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6816#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6816#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6816#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:38)),Unknown))]),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6821#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex6821#"),Unknown)),Unknown),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6796#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex6812#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6823#"),Unknown)),Unknown))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6812#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6812#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6812#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6812#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6812#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex6823#"),Unknown)),Unknown),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6796#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:293)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:288)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:288)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:288)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:293)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_app(Id_aux(Id("bool_bits"),model/riscv_insts_base.sail:293),[(MP_aux(MP_id(Id_aux(Id("is_unsigned"),model/riscv_insts_base.sail:293)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6831#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:332)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_app(Id_aux(Id("size_bits"),model/riscv_insts_base.sail:293),[(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_base.sail:293)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:342)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:293)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0000011"),model/riscv_insts_base.sail:293)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("lt_int"),../sail/lib/flow.sail:49),[(E_aux(E_app(Id_aux(Id("word_width_bytes"),model/riscv_insts_base.sail:293),[(E_aux(E_id(Id_aux(Id("size"),model/riscv_insts_base.sail:293)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:356),Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:356),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))]),model/riscv_types.sail:356)),model/riscv_types.sail:356)));(E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex6845#"),Unknown)),Unknown))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6845#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6845#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6845#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6845#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6845#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:40)),Unknown))]),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("not_bool"),model/riscv_insts_base.sail:293),[(E_aux(E_id(Id_aux(Id("is_unsigned"),model/riscv_insts_base.sail:293)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6831#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6831#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)));(E_aux(E_cast(Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown),E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("word_width_bytes"),model/riscv_insts_base.sail:293),[(E_aux(E_id(Id_aux(Id("size"),model/riscv_insts_base.sail:293)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:356),Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:356),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))]),model/riscv_types.sail:356)),model/riscv_types.sail:356)));(E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex6851#"),Unknown)),Unknown))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6851#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6851#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6851#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6851#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6851#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:38)),Unknown))]),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6856#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex6856#"),Unknown)),Unknown),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6831#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex6847#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6858#"),Unknown)),Unknown))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6847#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6847#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6847#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6847#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_var(Kid_aux(Var("'ex6847#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex6858#"),Unknown)),Unknown),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6831#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("extend_value"),model/riscv_insts_base.sail:295),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_insts_base.sail:295),Kid_aux(Var("'n"),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_insts_base.sail:295),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295),Nexp_aux(Nexp_id(Id_aux(Id("xlen_bytes"),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295));(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:295),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295),Effect_aux(Effect_set([]),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("extend_value"),model/riscv_insts_base.sail:296),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("is_unsigned"),model/riscv_insts_base.sail:296)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6868#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_insts_base.sail:296)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:295),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6868#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:295),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:296-299)),E_aux(E_case(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_base.sail:296)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:295),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_insts_base.sail:297),[(P_aux(P_id(Id_aux(Id("v"),model/riscv_insts_base.sail:297)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:295),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:295),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295)),E_aux(E_app(Id_aux(Id("MemValue"),model/riscv_insts_base.sail:297),[(E_aux(E_if(E_aux(E_id(Id_aux(Id("is_unsigned"),model/riscv_insts_base.sail:297)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6868#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_base.sail:297),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("v"),model/riscv_insts_base.sail:297)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:295),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:297)),model/riscv_insts_base.sail:297),E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_base.sail:297),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("v"),model/riscv_insts_base.sail:297)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:295),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_insts_base.sail:298),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_base.sail:298)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:295),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295)),E_aux(E_app(Id_aux(Id("MemException"),model/riscv_insts_base.sail:298),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_base.sail:298)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_sys_control.sail:488),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6868#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:295),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295))],Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295),Effect_aux(Effect_set([]),model/riscv_insts_base.sail:295)),model/riscv_insts_base.sail:295)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("process_load"),model/riscv_insts_base.sail:301),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_insts_base.sail:301),Kid_aux(Var("'n"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_insts_base.sail:301),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301),Nexp_aux(Nexp_id(Id_aux(Id("xlen_bytes"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301))]),model/riscv_insts_base.sail:301),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:301),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:301),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:301))]),model/riscv_insts_base.sail:301));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_base.sail:301));(BE_aux(BE_rreg,model/riscv_insts_base.sail:301));(BE_aux(BE_wreg,model/riscv_insts_base.sail:301))]),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("process_load"),model/riscv_insts_base.sail:302),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:302)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:302)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_insts_base.sail:302)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:301),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:301),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:301))]),model/riscv_insts_base.sail:301)));(P_aux(P_id(Id_aux(Id("is_unsigned"),model/riscv_insts_base.sail:302)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6879#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:301),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:301),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:301))]),model/riscv_insts_base.sail:301));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6879#"),Unknown)),Unknown)),Unknown))]),Unknown))]),model/riscv_insts_base.sail:302-306)),E_aux(E_case(E_aux(E_app(Id_aux(Id("extend_value"),model/riscv_insts_base.sail:303),[(E_aux(E_id(Id_aux(Id("is_unsigned"),model/riscv_insts_base.sail:303)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6879#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_base.sail:303)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:301),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:301),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:301))]),model/riscv_insts_base.sail:301)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_insts_base.sail:304),[(P_aux(P_id(Id_aux(Id("result"),model/riscv_insts_base.sail:304)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:304)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_insts_base.sail:304)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:304)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_insts_base.sail:305),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_base.sail:305)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_base.sail:305),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:305)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_base.sail:305)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:305)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:301),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_base.sail:301),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:301))]),model/riscv_insts_base.sail:301));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6879#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_base.sail:301));(BE_aux(BE_rreg,model/riscv_insts_base.sail:301));(BE_aux(BE_wreg,model/riscv_insts_base.sail:301))]),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("check_misaligned"),model/riscv_insts_base.sail:308),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("check_misaligned"),model/riscv_insts_base.sail:308),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308),P_aux(P_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:308)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308),P_aux(P_id(Id_aux(Id("width"),model/riscv_insts_base.sail:308)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308))),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308))]),model/riscv_insts_base.sail:308-315)),E_aux(E_if(E_aux(E_app(Id_aux(Id("plat_enable_misaligned_access"),model/riscv_insts_base.sail:309),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:309)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:43)),model/riscv_platform.sail:43)),E_aux(E_lit(L_aux(L_false,model/riscv_insts_base.sail:309)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_base.sail:310)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("BYTE"),model/riscv_insts_base.sail:311)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308)),E_aux(E_lit(L_aux(L_false,model/riscv_insts_base.sail:311)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("HALF"),model/riscv_insts_base.sail:312)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308)),E_aux(E_app(Id_aux(Id("eq_bit"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:312)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:312)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)));(E_aux(E_lit(L_aux(L_one,model/riscv_insts_base.sail:312)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("WORD"),model/riscv_insts_base.sail:313)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_bit"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:313)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:313)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)));(E_aux(E_lit(L_aux(L_one,model/riscv_insts_base.sail:313)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14)));(E_aux(E_app(Id_aux(Id("eq_bit"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:313)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_base.sail:313)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)));(E_aux(E_lit(L_aux(L_one,model/riscv_insts_base.sail:313)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6896#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6899#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex6896#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex6899#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("DOUBLE"),model/riscv_insts_base.sail:314)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_bit"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:314)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:314)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)));(E_aux(E_lit(L_aux(L_one,model/riscv_insts_base.sail:314)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_bit"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:314)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_base.sail:314)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)));(E_aux(E_lit(L_aux(L_one,model/riscv_insts_base.sail:314)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14)));(E_aux(E_app(Id_aux(Id("eq_bit"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:314)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_insts_base.sail:314)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)));(E_aux(E_lit(L_aux(L_one,model/riscv_insts_base.sail:314)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:14)),../sail/lib/flow.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6926#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6929#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex6926#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex6929#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6920#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6932#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex6933#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex6920#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex6932#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex6933#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:317),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("LOAD"),model/riscv_insts_base.sail:317),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:317)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:288)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:317)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:317)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("is_unsigned"),model/riscv_insts_base.sail:317)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6947#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_insts_base.sail:317)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288)));(P_aux(P_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:317)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6948#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:317)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6949#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:288)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288))]),model/riscv_insts_base.sail:288)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:318)),model/riscv_insts_base.sail:318),P_aux(P_id(Id_aux(Id("offset"),model/riscv_insts_base.sail:318)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_base.sail:318),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:318)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:288)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("ext_data_get_addr"),model/riscv_insts_base.sail:321),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:321)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("offset"),model/riscv_insts_base.sail:321)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("Read"),model/riscv_insts_base.sail:321),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_base.sail:321)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_base.sail:321)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_DataAddr_Error"),model/riscv_insts_base.sail:322),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_base.sail:322)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks_common.sail:21)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("ext_handle_data_check_error"),model/riscv_insts_base.sail:322),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_base.sail:322)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks_common.sail:21)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:54)),model/riscv_addr_checks.sail:54)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:322)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_DataAddr_OK"),model/riscv_insts_base.sail:323),[(P_aux(P_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:323)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),E_aux(E_if(E_aux(E_app(Id_aux(Id("check_misaligned"),model/riscv_insts_base.sail:324),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:324)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_base.sail:324)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_base.sail:325),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:325)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("E_Load_Addr_Align"),model/riscv_insts_base.sail:325),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:325)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:325)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_case(E_aux(E_app(Id_aux(Id("translateAddr"),model/riscv_insts_base.sail:326),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:326)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("Read"),model/riscv_insts_base.sail:326),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_base.sail:326)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Failure"),model/riscv_insts_base.sail:327),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_base.sail:327)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_base.sail:327),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:327)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_base.sail:327)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:327)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Address"),model/riscv_insts_base.sail:328),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:328)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_base.sail:329)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("BYTE"),model/riscv_insts_base.sail:330)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("process_load"),model/riscv_insts_base.sail:331),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:331)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:331)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("mem_read"),model/riscv_insts_base.sail:331),[(E_aux(E_app(Id_aux(Id("Read"),model/riscv_insts_base.sail:331),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_base.sail:331)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:331)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_base.sail:331)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:331)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6948#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:331)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6949#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_base.sail:331)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(1),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)));(E_aux(E_id(Id_aux(Id("is_unsigned"),model/riscv_insts_base.sail:331)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6947#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("HALF"),model/riscv_insts_base.sail:332)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("process_load"),model/riscv_insts_base.sail:333),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:333)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:333)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("mem_read"),model/riscv_insts_base.sail:333),[(E_aux(E_app(Id_aux(Id("Read"),model/riscv_insts_base.sail:333),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_base.sail:333)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:333)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_insts_base.sail:333)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:333)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6948#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:333)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6949#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_base.sail:333)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(2),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)));(E_aux(E_id(Id_aux(Id("is_unsigned"),model/riscv_insts_base.sail:333)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6947#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("WORD"),model/riscv_insts_base.sail:334)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("process_load"),model/riscv_insts_base.sail:335),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:335)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:335)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("mem_read"),model/riscv_insts_base.sail:335),[(E_aux(E_app(Id_aux(Id("Read"),model/riscv_insts_base.sail:335),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_base.sail:335)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:335)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_base.sail:335)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:335)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6948#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:335)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6949#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_base.sail:335)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(4),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)));(E_aux(E_id(Id_aux(Id("is_unsigned"),model/riscv_insts_base.sail:335)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6947#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("DOUBLE"),model/riscv_insts_base.sail:336)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288)));(P_aux(P_lit(L_aux(L_num(64),model/riscv_insts_base.sail:336)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("process_load"),model/riscv_insts_base.sail:337),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:337)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:337)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("mem_read"),model/riscv_insts_base.sail:337),[(E_aux(E_app(Id_aux(Id("Read"),model/riscv_insts_base.sail:337),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_base.sail:337)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:337)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_insts_base.sail:337)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:337)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6948#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:337)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6949#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_base.sail:337)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(8),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)));(E_aux(E_id(Id_aux(Id("is_unsigned"),model/riscv_insts_base.sail:337)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6947#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_base.sail:301)),model/riscv_insts_base.sail:301))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("maybe_aq"),model/riscv_insts_base.sail:343),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:343)),model/riscv_insts_base.sail:343),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:343)),model/riscv_insts_base.sail:343)),model/riscv_insts_base.sail:343)),model/riscv_insts_base.sail:343))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("maybe_aq"),model/riscv_insts_base.sail:344),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_base.sail:345)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string(".aq"),model/riscv_insts_base.sail:345)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:343)),model/riscv_insts_base.sail:343),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:343)),model/riscv_insts_base.sail:343)),model/riscv_insts_base.sail:343)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_base.sail:346)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string(""),model/riscv_insts_base.sail:346)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:343)),model/riscv_insts_base.sail:343),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:343)),model/riscv_insts_base.sail:343)),model/riscv_insts_base.sail:343)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("maybe_rl"),model/riscv_insts_base.sail:349),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:349)),model/riscv_insts_base.sail:349),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:349)),model/riscv_insts_base.sail:349)),model/riscv_insts_base.sail:349)),model/riscv_insts_base.sail:349))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("maybe_rl"),model/riscv_insts_base.sail:350),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_base.sail:351)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string(".rl"),model/riscv_insts_base.sail:351)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:349)),model/riscv_insts_base.sail:349),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:349)),model/riscv_insts_base.sail:349)),model/riscv_insts_base.sail:349)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_base.sail:352)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string(""),model/riscv_insts_base.sail:352)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:349)),model/riscv_insts_base.sail:349),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:349)),model/riscv_insts_base.sail:349)),model/riscv_insts_base.sail:349)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("maybe_u"),model/riscv_insts_base.sail:355),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:355)),model/riscv_insts_base.sail:355),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:355)),model/riscv_insts_base.sail:355)),model/riscv_insts_base.sail:355)),model/riscv_insts_base.sail:355))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("maybe_u"),model/riscv_insts_base.sail:356),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_base.sail:357)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("u"),model/riscv_insts_base.sail:357)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:355)),model/riscv_insts_base.sail:355),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:355)),model/riscv_insts_base.sail:355)),model/riscv_insts_base.sail:355)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_base.sail:358)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string(""),model/riscv_insts_base.sail:358)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:355)),model/riscv_insts_base.sail:355),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:355)),model/riscv_insts_base.sail:355)),model/riscv_insts_base.sail:355)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:361),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("LOAD"),model/riscv_insts_base.sail:361),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:361)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:288)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:361)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:361)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("is_unsigned"),model/riscv_insts_base.sail:361)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6988#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_base.sail:361)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288)));(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:361)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6989#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:361)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6990#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("l"),model/riscv_insts_base.sail:362)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("size_mnemonic"),model/riscv_insts_base.sail:362),[(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_base.sail:362)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:349)),model/riscv_types.sail:349)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("maybe_u"),model/riscv_insts_base.sail:362),[(MP_aux(MP_id(Id_aux(Id("is_unsigned"),model/riscv_insts_base.sail:362)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6991#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("maybe_aq"),model/riscv_insts_base.sail:362),[(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:362)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6992#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("maybe_rl"),model/riscv_insts_base.sail:362),[(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:362)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex6993#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:362),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:362)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:362),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:362)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:362),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:362)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_12"),model/riscv_insts_base.sail:362),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:362)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("opt_spc"),model/riscv_insts_base.sail:362),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:362)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_lit(L_aux(L_string("("),model/riscv_insts_base.sail:362)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("opt_spc"),model/riscv_insts_base.sail:362),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:362)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:362),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:362)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("opt_spc"),model/riscv_insts_base.sail:362),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:362)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_lit(L_aux(L_string(")"),model/riscv_insts_base.sail:362)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:365),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:365),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365))]),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365))]),model/riscv_insts_base.sail:365),Id_aux(Id("STORE"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:367),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("STORE"),model/riscv_insts_base.sail:367),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm7"),model/riscv_insts_base.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/riscv_insts_base.sail:368)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:368),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/riscv_insts_base.sail:368)),model/riscv_insts_base.sail:368))]),model/riscv_insts_base.sail:368)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/riscv_insts_base.sail:368)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm5"),model/riscv_insts_base.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:368)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:368),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:368)),model/riscv_insts_base.sail:368))]),model/riscv_insts_base.sail:368)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:368)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_base.sail:367)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)));(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_base.sail:367)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_base.sail:367)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("word_width_bytes"),model/riscv_insts_base.sail:367),[(E_aux(E_id(Id_aux(Id("size"),model/riscv_insts_base.sail:367)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:356),Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:356),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))]),model/riscv_types.sail:356)),model/riscv_types.sail:356)));(E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex7033#"),Unknown)),Unknown))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7033#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7033#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7033#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7033#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7033#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:38)),Unknown))]),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm7"),model/riscv_insts_base.sail:368)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/riscv_insts_base.sail:368)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:368),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/riscv_insts_base.sail:368)),model/riscv_insts_base.sail:368))]),model/riscv_insts_base.sail:368)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),model/riscv_insts_base.sail:368)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:368)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:368)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_base.sail:368)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_app(Id_aux(Id("size_bits"),model/riscv_insts_base.sail:368),[(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_base.sail:368)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:342)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm5"),model/riscv_insts_base.sail:368)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:368)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:368),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:368)),model/riscv_insts_base.sail:368))]),model/riscv_insts_base.sail:368)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:368)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0100011"),model/riscv_insts_base.sail:368)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("word_width_bytes"),model/riscv_insts_base.sail:368),[(E_aux(E_id(Id_aux(Id("size"),model/riscv_insts_base.sail:368)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:356),Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:356),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))]),model/riscv_types.sail:356)),model/riscv_types.sail:356)));(E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex7049#"),Unknown)),Unknown))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7049#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7049#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7049#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7049#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7049#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:38)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:372),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("STORE"),model/riscv_insts_base.sail:372),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:372)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:365)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:372)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:372)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_insts_base.sail:372)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)));(P_aux(P_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:372)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7056#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:372)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7057#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:365)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365))]),model/riscv_insts_base.sail:365)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:373)),model/riscv_insts_base.sail:373),P_aux(P_id(Id_aux(Id("offset"),model/riscv_insts_base.sail:373)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_base.sail:373),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:373)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:365)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("ext_data_get_addr"),model/riscv_insts_base.sail:376),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:376)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("offset"),model/riscv_insts_base.sail:376)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("Write"),model/riscv_insts_base.sail:376),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_base.sail:376)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_base.sail:376)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_DataAddr_Error"),model/riscv_insts_base.sail:377),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_base.sail:377)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks_common.sail:21)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("ext_handle_data_check_error"),model/riscv_insts_base.sail:377),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_base.sail:377)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks_common.sail:21)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:54)),model/riscv_addr_checks.sail:54)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:377)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_DataAddr_OK"),model/riscv_insts_base.sail:378),[(P_aux(P_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:378)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),E_aux(E_if(E_aux(E_app(Id_aux(Id("check_misaligned"),model/riscv_insts_base.sail:379),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_base.sail:379)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:308)),model/riscv_insts_base.sail:308)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_base.sail:380),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:380)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("E_SAMO_Addr_Align"),model/riscv_insts_base.sail:380),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:380)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:380)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_case(E_aux(E_app(Id_aux(Id("translateAddr"),model/riscv_insts_base.sail:381),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:381)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("Write"),model/riscv_insts_base.sail:381),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_base.sail:381)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Failure"),model/riscv_insts_base.sail:382),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_base.sail:382)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_base.sail:382),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_base.sail:382)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_base.sail:382)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:382)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Address"),model/riscv_insts_base.sail:383),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:383)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:384),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_base.sail:384)),model/riscv_insts_base.sail:384)),model/riscv_insts_base.sail:384))]),model/riscv_insts_base.sail:384),P_aux(P_id(Id_aux(Id("eares"),model/riscv_insts_base.sail:384)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:384),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_base.sail:384)),model/riscv_insts_base.sail:384)),model/riscv_insts_base.sail:384))]),model/riscv_insts_base.sail:384))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:384),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_base.sail:384)),model/riscv_insts_base.sail:384)),model/riscv_insts_base.sail:384))]),model/riscv_insts_base.sail:384)),E_aux(E_case(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_base.sail:384)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("BYTE"),model/riscv_insts_base.sail:385)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)),E_aux(E_app(Id_aux(Id("mem_write_ea"),model/riscv_insts_base.sail:385),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:385)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_base.sail:385)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:385)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7056#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:385)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7057#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_base.sail:385)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:123),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("HALF"),model/riscv_insts_base.sail:386)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)),E_aux(E_app(Id_aux(Id("mem_write_ea"),model/riscv_insts_base.sail:386),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:386)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_insts_base.sail:386)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:386)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7056#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:386)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7057#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_base.sail:386)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:123),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("WORD"),model/riscv_insts_base.sail:387)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)),E_aux(E_app(Id_aux(Id("mem_write_ea"),model/riscv_insts_base.sail:387),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:387)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_base.sail:387)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:387)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7056#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:387)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7057#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_base.sail:387)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:123),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("DOUBLE"),model/riscv_insts_base.sail:388)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)),E_aux(E_app(Id_aux(Id("mem_write_ea"),model/riscv_insts_base.sail:388),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:388)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_insts_base.sail:388)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:388)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7056#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:388)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7057#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_base.sail:388)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:123),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:384),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_base.sail:384)),model/riscv_insts_base.sail:384)),model/riscv_insts_base.sail:384))]),model/riscv_insts_base.sail:384))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("eares"),model/riscv_insts_base.sail:390)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:384),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_base.sail:384)),model/riscv_insts_base.sail:384)),model/riscv_insts_base.sail:384))]),model/riscv_insts_base.sail:384)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_insts_base.sail:391),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_base.sail:391)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:384),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_base.sail:384)),model/riscv_insts_base.sail:384)),model/riscv_insts_base.sail:384))]),model/riscv_insts_base.sail:384)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_base.sail:391),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_base.sail:391)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:391)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_insts_base.sail:392),[(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_base.sail:384)),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:384),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_base.sail:384)),model/riscv_insts_base.sail:384)),model/riscv_insts_base.sail:384))]),model/riscv_insts_base.sail:384)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:393)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:393)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:394),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394))]),model/riscv_insts_base.sail:394),P_aux(P_id(Id_aux(Id("res"),model/riscv_insts_base.sail:394)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:394),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394))]),model/riscv_insts_base.sail:394))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:394),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394))]),model/riscv_insts_base.sail:394)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_base.sail:394)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("BYTE"),model/riscv_insts_base.sail:395)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("mem_write_value"),model/riscv_insts_base.sail:395),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:395)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_base.sail:395)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:395)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(7),model/riscv_insts_base.sail:395)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:395)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(7),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:395)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7056#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:395)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7057#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_base.sail:395)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("HALF"),model/riscv_insts_base.sail:396)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("mem_write_value"),model/riscv_insts_base.sail:396),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:396)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_insts_base.sail:396)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:396)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(15),model/riscv_insts_base.sail:396)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(15),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:396)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(15),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:396)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7056#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:396)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7057#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_base.sail:396)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("WORD"),model/riscv_insts_base.sail:397)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("mem_write_value"),model/riscv_insts_base.sail:397),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:397)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_base.sail:397)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:397)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_base.sail:397)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:397)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:397)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7056#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:397)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7057#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_base.sail:397)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("DOUBLE"),model/riscv_insts_base.sail:398)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)));(P_aux(P_lit(L_aux(L_num(64),model/riscv_insts_base.sail:398)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("mem_write_value"),model/riscv_insts_base.sail:398),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:398)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_insts_base.sail:398)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:398)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:398)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7056#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:398)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7057#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_base.sail:398)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:394),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394))]),model/riscv_insts_base.sail:394))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("res"),model/riscv_insts_base.sail:400)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:394),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394))]),model/riscv_insts_base.sail:394)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_insts_base.sail:401),[(P_aux(P_lit(L_aux(L_true,model/riscv_insts_base.sail:401)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:394),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394))]),model/riscv_insts_base.sail:394)),E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:401)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_insts_base.sail:402),[(P_aux(P_lit(L_aux(L_false,model/riscv_insts_base.sail:402)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:394),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394))]),model/riscv_insts_base.sail:394)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_insts_base.sail:402),[(E_aux(E_lit(L_aux(L_string("store got false from mem_write_value"),model/riscv_insts_base.sail:402)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_types.sail:248))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_insts_base.sail:403),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_base.sail:403)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:394),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394)),model/riscv_insts_base.sail:394))]),model/riscv_insts_base.sail:394)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_base.sail:403),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:403)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_base.sail:403)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:403)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:412),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("STORE"),model/riscv_insts_base.sail:412),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:412)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:365)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:412)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:412)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_base.sail:412)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)));(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:412)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7078#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:412)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7079#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("s"),model/riscv_insts_base.sail:413)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("size_mnemonic"),model/riscv_insts_base.sail:413),[(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_base.sail:413)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:349)),model/riscv_types.sail:349)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("maybe_aq"),model/riscv_insts_base.sail:413),[(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_base.sail:413)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7080#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("maybe_rl"),model/riscv_insts_base.sail:413),[(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_base.sail:413)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7081#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:413),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:413)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:413),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:413)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:413),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:413)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_12"),model/riscv_insts_base.sail:413),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:413)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("opt_spc"),model/riscv_insts_base.sail:413),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:413)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_lit(L_aux(L_string("("),model/riscv_insts_base.sail:413)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("opt_spc"),model/riscv_insts_base.sail:413),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:413)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:413),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:413)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("opt_spc"),model/riscv_insts_base.sail:413),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:413)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_lit(L_aux(L_string(")"),model/riscv_insts_base.sail:413)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:416),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:416),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:416)),model/riscv_insts_base.sail:416))]),model/riscv_insts_base.sail:416));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:416)),model/riscv_insts_base.sail:416));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:416)),model/riscv_insts_base.sail:416))]),model/riscv_insts_base.sail:416),Id_aux(Id("ADDIW"),model/riscv_insts_base.sail:416)),model/riscv_insts_base.sail:416)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:418),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("ADDIW"),model/riscv_insts_base.sail:418),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:418)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:418)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:418)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:419)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0011011"),model/riscv_insts_base.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:421)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:423),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("ADDIW"),model/riscv_insts_base.sail:423),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:423)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:423)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:423)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:416)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:424)),model/riscv_insts_base.sail:424),P_aux(P_id(Id_aux(Id("result"),model/riscv_insts_base.sail:424)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_base.sail:424),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:424)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:424)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:425)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_base.sail:425),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("result"),model/riscv_insts_base.sail:425)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_base.sail:425)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:425)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:426)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:429),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("ADDIW"),model/riscv_insts_base.sail:429),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:429)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:429)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:429)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:430)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("addiw"),model/riscv_insts_base.sail:431)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:431),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:431)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:431),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:431)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:431),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:431)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:431),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:431)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:431),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:431)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_12"),model/riscv_insts_base.sail:431),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_base.sail:431)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/prelude_mapping.sail:243)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:432)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:435),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:435),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435))]),model/riscv_insts_base.sail:435));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435));(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435))]),model/riscv_insts_base.sail:435),Id_aux(Id("SHIFTW"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:437),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("SHIFTW"),model/riscv_insts_base.sail:437),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:437)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:437)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:437)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SLLI"),model/riscv_insts_base.sail:437)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:438)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_base.sail:439)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:439)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:439)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("001"),model/riscv_insts_base.sail:439)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:439)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0011011"),model/riscv_insts_base.sail:439)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:440)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:441),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("SHIFTW"),model/riscv_insts_base.sail:441),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:441)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:441)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:441)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SRLI"),model/riscv_insts_base.sail:441)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:442)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_base.sail:443)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:443)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:443)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("101"),model/riscv_insts_base.sail:443)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:443)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0011011"),model/riscv_insts_base.sail:443)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:444)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:445),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("SHIFTW"),model/riscv_insts_base.sail:445),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:445)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:445)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:445)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SRAI"),model/riscv_insts_base.sail:445)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:446)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0100000"),model/riscv_insts_base.sail:447)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:447)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:447)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("101"),model/riscv_insts_base.sail:447)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:447)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0011011"),model/riscv_insts_base.sail:447)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:448)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:450),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("SHIFTW"),model/riscv_insts_base.sail:450),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:450)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:450)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:450)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_insts_base.sail:450)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435))]),model/riscv_insts_base.sail:435)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:451)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:451)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_base.sail:451)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:451)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:452),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:452)),model/riscv_insts_base.sail:452))]),model/riscv_insts_base.sail:452),P_aux(P_id(Id_aux(Id("result"),model/riscv_insts_base.sail:452)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("op"),model/riscv_insts_base.sail:452)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLLI"),model/riscv_insts_base.sail:453)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435)),E_aux(E_app(Id_aux(Id("shift_bits_left"),model/prelude.sail:169),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:453)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:453)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRLI"),model/riscv_insts_base.sail:454)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435)),E_aux(E_app(Id_aux(Id("shift_bits_right"),model/prelude.sail:168),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:454)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:454)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRAI"),model/riscv_insts_base.sail:455)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435)),E_aux(E_app(Id_aux(Id("shift_right_arith32"),model/riscv_insts_base.sail:455),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:455)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:455)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:457)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_base.sail:457),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_insts_base.sail:457)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:458)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("shiftw_mnemonic"),model/riscv_insts_base.sail:461),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("shiftw_mnemonic"),model/riscv_insts_base.sail:461),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SLLI"),model/riscv_insts_base.sail:462)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("slli"),model/riscv_insts_base.sail:462)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SRLI"),model/riscv_insts_base.sail:463)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("srli"),model/riscv_insts_base.sail:463)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SRAI"),model/riscv_insts_base.sail:464)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("srai"),model/riscv_insts_base.sail:464)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:467),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("SHIFTW"),model/riscv_insts_base.sail:467),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:467)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:467)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:467)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:467)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:468)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_app(Id_aux(Id("shiftw_mnemonic"),model/riscv_insts_base.sail:469),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:469)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:461)),model/riscv_insts_base.sail:461)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:469),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:469)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:469),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:469)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:469),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:469)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:469),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:469)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:469),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:469)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_5"),model/riscv_insts_base.sail:469),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:469)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:470)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:473),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473));(Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473))]),model/riscv_insts_base.sail:473),Id_aux(Id("RTYPEW"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:475),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("RTYPEW"),model/riscv_insts_base.sail:475),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:475)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:475)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:475)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_ADDW"),model/riscv_insts_base.sail:475)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:476)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_base.sail:477)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:477)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:477)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:477)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:477)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0111011"),model/riscv_insts_base.sail:477)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:478)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:479),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("RTYPEW"),model/riscv_insts_base.sail:479),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:479)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:479)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:479)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SUBW"),model/riscv_insts_base.sail:479)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:480)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0100000"),model/riscv_insts_base.sail:481)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:481)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:481)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:481)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:481)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0111011"),model/riscv_insts_base.sail:481)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:482)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:483),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("RTYPEW"),model/riscv_insts_base.sail:483),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:483)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:483)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:483)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SLLW"),model/riscv_insts_base.sail:483)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:484)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_base.sail:485)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:485)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:485)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("001"),model/riscv_insts_base.sail:485)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:485)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0111011"),model/riscv_insts_base.sail:485)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:486)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:487),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("RTYPEW"),model/riscv_insts_base.sail:487),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:487)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:487)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:487)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SRLW"),model/riscv_insts_base.sail:487)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:488)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_base.sail:489)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:489)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:489)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("101"),model/riscv_insts_base.sail:489)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:489)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0111011"),model/riscv_insts_base.sail:489)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:490)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:491),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("RTYPEW"),model/riscv_insts_base.sail:491),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:491)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:491)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:491)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SRAW"),model/riscv_insts_base.sail:491)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:492)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0100000"),model/riscv_insts_base.sail:493)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:493)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:493)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("101"),model/riscv_insts_base.sail:493)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:493)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0111011"),model/riscv_insts_base.sail:493)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:494)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:496),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("RTYPEW"),model/riscv_insts_base.sail:496),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:496)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:496)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:496)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_insts_base.sail:496)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473))]),model/riscv_insts_base.sail:473)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:497)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:497)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_base.sail:497)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:497)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:498)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:498)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_base.sail:498)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:498)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:499),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:499)),model/riscv_insts_base.sail:499))]),model/riscv_insts_base.sail:499),P_aux(P_id(Id_aux(Id("result"),model/riscv_insts_base.sail:499)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:499)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:499)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("op"),model/riscv_insts_base.sail:499)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_ADDW"),model/riscv_insts_base.sail:500)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473)),E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:500)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:500)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:499)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SUBW"),model/riscv_insts_base.sail:501)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473)),E_aux(E_app(Id_aux(Id("sub_vec"),model/prelude.sail:75),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:501)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:501)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:499)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLLW"),model/riscv_insts_base.sail:502)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473)),E_aux(E_app(Id_aux(Id("shift_bits_left"),model/prelude.sail:169),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:502)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:502)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_base.sail:502)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:502)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:499)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRLW"),model/riscv_insts_base.sail:503)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473)),E_aux(E_app(Id_aux(Id("shift_bits_right"),model/prelude.sail:168),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:503)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:503)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_base.sail:503)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:503)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:499)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRAW"),model/riscv_insts_base.sail:504)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473)),E_aux(E_app(Id_aux(Id("shift_right_arith32"),model/riscv_insts_base.sail:504),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:504)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_base.sail:504)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_base.sail:504)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:504)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(4),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:499)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:506)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_base.sail:506),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_insts_base.sail:506)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:499)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:507)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("rtypew_mnemonic"),model/riscv_insts_base.sail:510),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("rtypew_mnemonic"),model/riscv_insts_base.sail:510),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_ADDW"),model/riscv_insts_base.sail:511)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("addw"),model/riscv_insts_base.sail:511)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SUBW"),model/riscv_insts_base.sail:512)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("subw"),model/riscv_insts_base.sail:512)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SLLW"),model/riscv_insts_base.sail:513)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sllw"),model/riscv_insts_base.sail:513)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SRLW"),model/riscv_insts_base.sail:514)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("srlw"),model/riscv_insts_base.sail:514)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SRAW"),model/riscv_insts_base.sail:515)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sraw"),model/riscv_insts_base.sail:515)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:518),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("RTYPEW"),model/riscv_insts_base.sail:518),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:518)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:518)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:518)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:518)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:519)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_app(Id_aux(Id("rtypew_mnemonic"),model/riscv_insts_base.sail:520),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:520)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:510)),model/riscv_insts_base.sail:510)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:520),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:520)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:520),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:520)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:520),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:520)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:520),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:520)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:520),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:520)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:520),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:520)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:521)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:524),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:524),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),model/riscv_insts_base.sail:524))]),model/riscv_insts_base.sail:524));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:524)),model/riscv_insts_base.sail:524));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:524)),model/riscv_insts_base.sail:524));(Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:524)),model/riscv_insts_base.sail:524))]),model/riscv_insts_base.sail:524),Id_aux(Id("SHIFTIWOP"),model/riscv_insts_base.sail:524)),model/riscv_insts_base.sail:524)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:526),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("SHIFTIWOP"),model/riscv_insts_base.sail:526),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:526)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:526)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:526)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SLLIW"),model/riscv_insts_base.sail:526)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:524)),model/riscv_insts_base.sail:524)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:527)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_base.sail:528)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:528)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:528)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("001"),model/riscv_insts_base.sail:528)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:528)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0011011"),model/riscv_insts_base.sail:528)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:529)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:530),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("SHIFTIWOP"),model/riscv_insts_base.sail:530),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:530)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:530)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:530)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SRLIW"),model/riscv_insts_base.sail:530)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:524)),model/riscv_insts_base.sail:524)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:531)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_base.sail:532)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:532)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:532)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("101"),model/riscv_insts_base.sail:532)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:532)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0011011"),model/riscv_insts_base.sail:532)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:533)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:534),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("SHIFTIWOP"),model/riscv_insts_base.sail:534),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:534)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:534)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:534)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("RISCV_SRAIW"),model/riscv_insts_base.sail:534)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:524)),model/riscv_insts_base.sail:524)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:535)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0100000"),model/riscv_insts_base.sail:536)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:536)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:536)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("101"),model/riscv_insts_base.sail:536)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:536)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0011011"),model/riscv_insts_base.sail:536)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:537)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:539),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("SHIFTIWOP"),model/riscv_insts_base.sail:539),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:539)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:539)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:539)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_insts_base.sail:539)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:524)),model/riscv_insts_base.sail:524)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:524)),model/riscv_insts_base.sail:524))]),model/riscv_insts_base.sail:524)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:540)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:540)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:541),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:541)),model/riscv_insts_base.sail:541))]),model/riscv_insts_base.sail:541),P_aux(P_id(Id_aux(Id("result"),model/riscv_insts_base.sail:541)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:541)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:541)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("op"),model/riscv_insts_base.sail:541)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:524)),model/riscv_insts_base.sail:524)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SLLIW"),model/riscv_insts_base.sail:542)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:524)),model/riscv_insts_base.sail:524)),E_aux(E_app(Id_aux(Id("shift_bits_left"),model/prelude.sail:169),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:542)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_base.sail:542)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:542)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:542)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:541)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRLIW"),model/riscv_insts_base.sail:543)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:524)),model/riscv_insts_base.sail:524)),E_aux(E_app(Id_aux(Id("shift_bits_right"),model/prelude.sail:168),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:543)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_base.sail:543)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:543)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:543)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:541)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RISCV_SRAIW"),model/riscv_insts_base.sail:544)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:524)),model/riscv_insts_base.sail:524)),E_aux(E_app(Id_aux(Id("shift_right_arith32"),model/riscv_insts_base.sail:544),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_base.sail:544)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_base.sail:544)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_base.sail:544)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:544)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude.sail:177)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:541)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:546)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_base.sail:546),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_insts_base.sail:546)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_base.sail:541)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:547)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("shiftiwop_mnemonic"),model/riscv_insts_base.sail:550),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("shiftiwop_mnemonic"),model/riscv_insts_base.sail:550),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SLLIW"),model/riscv_insts_base.sail:551)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("slliw"),model/riscv_insts_base.sail:551)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SRLIW"),model/riscv_insts_base.sail:552)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("srliw"),model/riscv_insts_base.sail:552)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("RISCV_SRAIW"),model/riscv_insts_base.sail:553)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sraiw"),model/riscv_insts_base.sail:553)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:556),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("SHIFTIWOP"),model/riscv_insts_base.sail:556),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:556)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:524)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:556)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:556)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:556)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:524)),model/riscv_insts_base.sail:524)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:557)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_app(Id_aux(Id("shiftiwop_mnemonic"),model/riscv_insts_base.sail:558),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_base.sail:558)),Typ_aux(Typ_id(Id_aux(Id("sopw"),model/riscv_insts_base.sail:550)),model/riscv_insts_base.sail:550)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:558),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:558)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:558),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_base.sail:558)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:558),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:558)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:558),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:558)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:558),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:558)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_5"),model/riscv_insts_base.sail:558),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_base.sail:558)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_base.sail:559)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:562),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:562),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),model/riscv_insts_base.sail:562))]),model/riscv_insts_base.sail:562));(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:562),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),model/riscv_insts_base.sail:562))]),model/riscv_insts_base.sail:562))]),model/riscv_insts_base.sail:562),Id_aux(Id("FENCE"),model/riscv_insts_base.sail:562)),model/riscv_insts_base.sail:562)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:564),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("FENCE"),model/riscv_insts_base.sail:564),[(MP_aux(MP_id(Id_aux(Id("pred"),model/riscv_insts_base.sail:564)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("succ"),model/riscv_insts_base.sail:564)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000"),model/riscv_insts_base.sail:565)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("pred"),model/riscv_insts_base.sail:565)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("succ"),model/riscv_insts_base.sail:565)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:565)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:565)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:565)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("0001111"),model/riscv_insts_base.sail:565)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:570),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("FENCE"),model/riscv_insts_base.sail:570),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("pred"),model/riscv_insts_base.sail:570)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("succ"),model/riscv_insts_base.sail:570)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:562)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("pred"),model/riscv_insts_base.sail:571)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("succ"),model/riscv_insts_base.sail:571)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:572),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:572)),model/riscv_insts_base.sail:572))]),model/riscv_insts_base.sail:572),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:572)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:572)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_insts_base.sail:572)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:572),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:572)),model/riscv_insts_base.sail:572))]),model/riscv_insts_base.sail:572),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:572)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:572)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_insts_base.sail:572)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("__barrier"),model/riscv_insts_base.sail:572),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_rw_rw"),model/riscv_insts_base.sail:572),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:572)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:143)),../sail/lib/regfp.sail:143))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:573),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:573)),model/riscv_insts_base.sail:573))]),model/riscv_insts_base.sail:573),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:573)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:573)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("10"),model/riscv_insts_base.sail:573)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:573),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:573)),model/riscv_insts_base.sail:573))]),model/riscv_insts_base.sail:573),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:573)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:573)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_insts_base.sail:573)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("__barrier"),model/riscv_insts_base.sail:573),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_r_rw"),model/riscv_insts_base.sail:573),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:573)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:143)),../sail/lib/regfp.sail:143))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:574),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:574)),model/riscv_insts_base.sail:574))]),model/riscv_insts_base.sail:574),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:574)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:574)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("10"),model/riscv_insts_base.sail:574)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:574),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:574)),model/riscv_insts_base.sail:574))]),model/riscv_insts_base.sail:574),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:574)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:574)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("10"),model/riscv_insts_base.sail:574)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("__barrier"),model/riscv_insts_base.sail:574),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_r_r"),model/riscv_insts_base.sail:574),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:574)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:143)),../sail/lib/regfp.sail:143))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:575),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:575)),model/riscv_insts_base.sail:575))]),model/riscv_insts_base.sail:575),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:575)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:575)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_insts_base.sail:575)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:575),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:575)),model/riscv_insts_base.sail:575))]),model/riscv_insts_base.sail:575),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:575)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:575)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_insts_base.sail:575)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("__barrier"),model/riscv_insts_base.sail:575),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_rw_w"),model/riscv_insts_base.sail:575),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:575)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:143)),../sail/lib/regfp.sail:143))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:576),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:576)),model/riscv_insts_base.sail:576))]),model/riscv_insts_base.sail:576),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:576)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:576)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_insts_base.sail:576)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:576),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:576)),model/riscv_insts_base.sail:576))]),model/riscv_insts_base.sail:576),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:576)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:576)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_insts_base.sail:576)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("__barrier"),model/riscv_insts_base.sail:576),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_w_w"),model/riscv_insts_base.sail:576),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:576)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:143)),../sail/lib/regfp.sail:143))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:577),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:577)),model/riscv_insts_base.sail:577))]),model/riscv_insts_base.sail:577),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:577)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:577)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_insts_base.sail:577)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:577),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:577)),model/riscv_insts_base.sail:577))]),model/riscv_insts_base.sail:577),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:577)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:577)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_insts_base.sail:577)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("__barrier"),model/riscv_insts_base.sail:577),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_w_rw"),model/riscv_insts_base.sail:577),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:577)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:143)),../sail/lib/regfp.sail:143))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:578),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:578)),model/riscv_insts_base.sail:578))]),model/riscv_insts_base.sail:578),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:578)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:578)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_insts_base.sail:578)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:578),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:578)),model/riscv_insts_base.sail:578))]),model/riscv_insts_base.sail:578),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:578)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:578)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("10"),model/riscv_insts_base.sail:578)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("__barrier"),model/riscv_insts_base.sail:578),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_rw_r"),model/riscv_insts_base.sail:578),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:578)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:143)),../sail/lib/regfp.sail:143))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:579),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:579)),model/riscv_insts_base.sail:579))]),model/riscv_insts_base.sail:579),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:579)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:579)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("10"),model/riscv_insts_base.sail:579)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:579),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:579)),model/riscv_insts_base.sail:579))]),model/riscv_insts_base.sail:579),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:579)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:579)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_insts_base.sail:579)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("__barrier"),model/riscv_insts_base.sail:579),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_r_w"),model/riscv_insts_base.sail:579),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:579)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:143)),../sail/lib/regfp.sail:143))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:580),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:580)),model/riscv_insts_base.sail:580))]),model/riscv_insts_base.sail:580),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:580)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:580)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_insts_base.sail:580)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:580),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:580)),model/riscv_insts_base.sail:580))]),model/riscv_insts_base.sail:580),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:580)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:580)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("10"),model/riscv_insts_base.sail:580)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("__barrier"),model/riscv_insts_base.sail:580),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_w_r"),model/riscv_insts_base.sail:580),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:580)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:143)),../sail/lib/regfp.sail:143))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:582),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:582)),model/riscv_insts_base.sail:582))]),model/riscv_insts_base.sail:582),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:582)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:582)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("00"),model/riscv_insts_base.sail:582)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:582),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:582)),model/riscv_insts_base.sail:582))]),model/riscv_insts_base.sail:582),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:582)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:582)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("00"),model/riscv_insts_base.sail:582)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:582)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("print"),model/riscv_insts_base.sail:584),[(E_aux(E_lit(L_aux(L_string("FIXME: unsupported fence"),model/riscv_insts_base.sail:584)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:97)),model/prelude.sail:97)));(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:585)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:587)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("bit_maybe_r"),model/riscv_insts_base.sail:614),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:614)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:614)),model/riscv_insts_base.sail:614)),model/riscv_insts_base.sail:614)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("bit_maybe_r"),model/riscv_insts_base.sail:614),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:614),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:614)),model/riscv_insts_base.sail:614))]),model/riscv_insts_base.sail:614),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:614)),model/riscv_insts_base.sail:614)),model/riscv_insts_base.sail:614)),model/riscv_insts_base.sail:614),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("1"),model/riscv_insts_base.sail:615)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("r"),model/riscv_insts_base.sail:615)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:614)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:614)),model/riscv_insts_base.sail:614)),model/riscv_insts_base.sail:614)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_base.sail:616)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string(""),model/riscv_insts_base.sail:616)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:614)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:614)),model/riscv_insts_base.sail:614)),model/riscv_insts_base.sail:614)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("bit_maybe_w"),model/riscv_insts_base.sail:619),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:619)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:619)),model/riscv_insts_base.sail:619)),model/riscv_insts_base.sail:619)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("bit_maybe_w"),model/riscv_insts_base.sail:619),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:619),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:619)),model/riscv_insts_base.sail:619))]),model/riscv_insts_base.sail:619),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:619)),model/riscv_insts_base.sail:619)),model/riscv_insts_base.sail:619)),model/riscv_insts_base.sail:619),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("1"),model/riscv_insts_base.sail:620)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("w"),model/riscv_insts_base.sail:620)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:619)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:619)),model/riscv_insts_base.sail:619)),model/riscv_insts_base.sail:619)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_base.sail:621)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string(""),model/riscv_insts_base.sail:621)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:619)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:619)),model/riscv_insts_base.sail:619)),model/riscv_insts_base.sail:619)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("bit_maybe_i"),model/riscv_insts_base.sail:624),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:624)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:624)),model/riscv_insts_base.sail:624)),model/riscv_insts_base.sail:624)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("bit_maybe_i"),model/riscv_insts_base.sail:624),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:624),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:624)),model/riscv_insts_base.sail:624))]),model/riscv_insts_base.sail:624),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:624)),model/riscv_insts_base.sail:624)),model/riscv_insts_base.sail:624)),model/riscv_insts_base.sail:624),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("1"),model/riscv_insts_base.sail:625)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("i"),model/riscv_insts_base.sail:625)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:624)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:624)),model/riscv_insts_base.sail:624)),model/riscv_insts_base.sail:624)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_base.sail:626)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string(""),model/riscv_insts_base.sail:626)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:624)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:624)),model/riscv_insts_base.sail:624)),model/riscv_insts_base.sail:624)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("bit_maybe_o"),model/riscv_insts_base.sail:629),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:629)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:629)),model/riscv_insts_base.sail:629)),model/riscv_insts_base.sail:629)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("bit_maybe_o"),model/riscv_insts_base.sail:629),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:629),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:629)),model/riscv_insts_base.sail:629))]),model/riscv_insts_base.sail:629),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:629)),model/riscv_insts_base.sail:629)),model/riscv_insts_base.sail:629)),model/riscv_insts_base.sail:629),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("1"),model/riscv_insts_base.sail:630)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("o"),model/riscv_insts_base.sail:630)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:629)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:629)),model/riscv_insts_base.sail:629)),model/riscv_insts_base.sail:629)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_base.sail:631)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string(""),model/riscv_insts_base.sail:631)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:629)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:629)),model/riscv_insts_base.sail:629)),model/riscv_insts_base.sail:629)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("fence_bits"),model/riscv_insts_base.sail:634),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:634)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:634)),model/riscv_insts_base.sail:634)),model/riscv_insts_base.sail:634)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("fence_bits"),model/riscv_insts_base.sail:634),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:634),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:634)),model/riscv_insts_base.sail:634))]),model/riscv_insts_base.sail:634),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:634)),model/riscv_insts_base.sail:634)),model/riscv_insts_base.sail:634)),model/riscv_insts_base.sail:634),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i"),model/riscv_insts_base.sail:635)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:635)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:635),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:635)),model/riscv_insts_base.sail:635))]),model/riscv_insts_base.sail:635)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:635)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("o"),model/riscv_insts_base.sail:635)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:635)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:635),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:635)),model/riscv_insts_base.sail:635))]),model/riscv_insts_base.sail:635)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:635)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("r"),model/riscv_insts_base.sail:635)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:635)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:635),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:635)),model/riscv_insts_base.sail:635))]),model/riscv_insts_base.sail:635)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:635)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("w"),model/riscv_insts_base.sail:635)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:635)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:635),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:635)),model/riscv_insts_base.sail:635))]),model/riscv_insts_base.sail:635)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:635)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_app(Id_aux(Id("bit_maybe_i"),model/riscv_insts_base.sail:635),[(MP_aux(MP_id(Id_aux(Id("i"),model/riscv_insts_base.sail:635)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:624)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:634)),model/riscv_insts_base.sail:634)));(MP_aux(MP_app(Id_aux(Id("bit_maybe_o"),model/riscv_insts_base.sail:635),[(MP_aux(MP_id(Id_aux(Id("o"),model/riscv_insts_base.sail:635)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:629)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:634)),model/riscv_insts_base.sail:634)));(MP_aux(MP_app(Id_aux(Id("bit_maybe_r"),model/riscv_insts_base.sail:635),[(MP_aux(MP_id(Id_aux(Id("r"),model/riscv_insts_base.sail:635)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:614)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:634)),model/riscv_insts_base.sail:634)));(MP_aux(MP_app(Id_aux(Id("bit_maybe_w"),model/riscv_insts_base.sail:635),[(MP_aux(MP_id(Id_aux(Id("w"),model/riscv_insts_base.sail:635)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_base.sail:619)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:634)),model/riscv_insts_base.sail:634)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:634)),model/riscv_insts_base.sail:634))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:634)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_base.sail:634)),model/riscv_insts_base.sail:634)),model/riscv_insts_base.sail:634)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:638),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("FENCE"),model/riscv_insts_base.sail:638),[(MP_aux(MP_id(Id_aux(Id("pred"),model/riscv_insts_base.sail:638)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("succ"),model/riscv_insts_base.sail:638)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("fence"),model/riscv_insts_base.sail:639)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:639),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:639)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("fence_bits"),model/riscv_insts_base.sail:639),[(MP_aux(MP_id(Id_aux(Id("pred"),model/riscv_insts_base.sail:639)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:634)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:639),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:639)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("fence_bits"),model/riscv_insts_base.sail:639),[(MP_aux(MP_id(Id_aux(Id("succ"),model/riscv_insts_base.sail:639)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:634)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:642),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:642),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),model/riscv_insts_base.sail:642))]),model/riscv_insts_base.sail:642));(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:642),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),model/riscv_insts_base.sail:642))]),model/riscv_insts_base.sail:642))]),model/riscv_insts_base.sail:642),Id_aux(Id("FENCE_TSO"),model/riscv_insts_base.sail:642)),model/riscv_insts_base.sail:642)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:644),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("FENCE_TSO"),model/riscv_insts_base.sail:644),[(MP_aux(MP_id(Id_aux(Id("pred"),model/riscv_insts_base.sail:644)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("succ"),model/riscv_insts_base.sail:644)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("1000"),model/riscv_insts_base.sail:645)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("pred"),model/riscv_insts_base.sail:645)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("succ"),model/riscv_insts_base.sail:645)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:645)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:645)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:645)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("0001111"),model/riscv_insts_base.sail:645)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:649),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("FENCE_TSO"),model/riscv_insts_base.sail:649),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("pred"),model/riscv_insts_base.sail:649)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("succ"),model/riscv_insts_base.sail:649)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:642)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("pred"),model/riscv_insts_base.sail:650)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("succ"),model/riscv_insts_base.sail:650)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:651),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:651)),model/riscv_insts_base.sail:651))]),model/riscv_insts_base.sail:651),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:651)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:651)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_insts_base.sail:651)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:651),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:651)),model/riscv_insts_base.sail:651))]),model/riscv_insts_base.sail:651),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:651)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:651)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_insts_base.sail:651)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("__barrier"),model/riscv_insts_base.sail:651),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_tso"),model/riscv_insts_base.sail:651),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:651)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/regfp.sail:143)),../sail/lib/regfp.sail:143))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:652),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:652)),model/riscv_insts_base.sail:652))]),model/riscv_insts_base.sail:652),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:652)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:652)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("00"),model/riscv_insts_base.sail:652)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_base.sail:652),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:652)),model/riscv_insts_base.sail:652))]),model/riscv_insts_base.sail:652),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:652)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_base.sail:652)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("00"),model/riscv_insts_base.sail:652)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:652)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("print"),model/riscv_insts_base.sail:654),[(E_aux(E_lit(L_aux(L_string("FIXME: unsupported fence"),model/riscv_insts_base.sail:654)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:97)),model/prelude.sail:97)));(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:655)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:657)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:675),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("FENCE_TSO"),model/riscv_insts_base.sail:675),[(MP_aux(MP_id(Id_aux(Id("pred"),model/riscv_insts_base.sail:675)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("succ"),model/riscv_insts_base.sail:675)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("fence.tso"),model/riscv_insts_base.sail:676)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:676),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:676)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("fence_bits"),model/riscv_insts_base.sail:676),[(MP_aux(MP_id(Id_aux(Id("pred"),model/riscv_insts_base.sail:676)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:634)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:676),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:676)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("fence_bits"),model/riscv_insts_base.sail:676),[(MP_aux(MP_id(Id_aux(Id("succ"),model/riscv_insts_base.sail:676)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:634)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:679),Tu_aux(Tu_ty_id(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_base.sail:679)),model/riscv_insts_base.sail:679),Id_aux(Id("FENCEI"),model/riscv_insts_base.sail:679)),model/riscv_insts_base.sail:679)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:681),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("FENCEI"),model/riscv_insts_base.sail:681),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:681)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("000000000000"),model/riscv_insts_base.sail:682)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:682)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("001"),model/riscv_insts_base.sail:682)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:682)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("0001111"),model/riscv_insts_base.sail:682)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:685),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("FENCEI"),model/riscv_insts_base.sail:685),[(P_aux(P_lit(L_aux(L_unit,model/riscv_insts_base.sail:685)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:685)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:687),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("FENCEI"),model/riscv_insts_base.sail:687),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:687)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("fence.i"),model/riscv_insts_base.sail:687)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:690),Tu_aux(Tu_ty_id(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_base.sail:690)),model/riscv_insts_base.sail:690),Id_aux(Id("ECALL"),model/riscv_insts_base.sail:690)),model/riscv_insts_base.sail:690)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:692),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("ECALL"),model/riscv_insts_base.sail:692),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:692)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("000000000000"),model/riscv_insts_base.sail:693)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:693)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:693)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:693)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("1110011"),model/riscv_insts_base.sail:693)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:695),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("ECALL"),model/riscv_insts_base.sail:695),[(P_aux(P_lit(L_aux(L_unit,model/riscv_insts_base.sail:695)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_insts_base.sail:696)),model/riscv_insts_base.sail:696),P_aux(P_id(Id_aux(Id("t"),model/riscv_insts_base.sail:696)),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_insts_base.sail:696)),model/riscv_insts_base.sail:696))),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_insts_base.sail:696)),model/riscv_insts_base.sail:696)),E_aux(E_record([(FE_aux(FE_Fexp(Id_aux(Id("trap"),model/riscv_insts_base.sail:697),E_aux(E_case(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_insts_base.sail:697)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("User"),model/riscv_insts_base.sail:698)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_app(Id_aux(Id("E_U_EnvCall"),model/riscv_insts_base.sail:698),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:698)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_insts_base.sail:699)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_app(Id_aux(Id("E_S_EnvCall"),model/riscv_insts_base.sail:699),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:699)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_insts_base.sail:700)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_app(Id_aux(Id("E_M_EnvCall"),model/riscv_insts_base.sail:700),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:700)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sync_exception.sail:4)),model/riscv_sync_exception.sail:4))),None));(FE_aux(FE_Fexp(Id_aux(Id("excinfo"),model/riscv_insts_base.sail:702),E_aux(E_cast(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_base.sail:702),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:702)),model/riscv_insts_base.sail:702)),model/riscv_insts_base.sail:702))]),model/riscv_insts_base.sail:702),E_aux(E_app(Id_aux(Id("None"),model/riscv_insts_base.sail:702),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:702)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_base.sail:702),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:702))]),model/riscv_insts_base.sail:702))),None));(FE_aux(FE_Fexp(Id_aux(Id("ext"),model/riscv_insts_base.sail:703),E_aux(E_app(Id_aux(Id("None"),model/riscv_insts_base.sail:703),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:703)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:3)),Unknown)),Unknown))]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_insts_base.sail:696)),model/riscv_insts_base.sail:696))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("set_next_pc"),model/riscv_insts_base.sail:704),[(E_aux(E_app(Id_aux(Id("exception_handler"),model/riscv_insts_base.sail:704),[(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_insts_base.sail:704)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)));(E_aux(E_app(Id_aux(Id("CTL_TRAP"),model/riscv_insts_base.sail:704),[(E_aux(E_id(Id_aux(Id("t"),model/riscv_insts_base.sail:704)),Typ_aux(Typ_id(Id_aux(Id("sync_exception"),model/riscv_insts_base.sail:696)),model/riscv_insts_base.sail:696)))]),Typ_aux(Typ_app(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268),[]),Unknown)));(E_aux(E_id(Id_aux(Id("PC"),model/riscv_insts_base.sail:704)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:705)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:708),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("ECALL"),model/riscv_insts_base.sail:708),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:708)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("ecall"),model/riscv_insts_base.sail:708)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:711),Tu_aux(Tu_ty_id(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_base.sail:711)),model/riscv_insts_base.sail:711),Id_aux(Id("MRET"),model/riscv_insts_base.sail:711)),model/riscv_insts_base.sail:711)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:713),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("MRET"),model/riscv_insts_base.sail:713),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:713)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0011000"),model/riscv_insts_base.sail:714)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00010"),model/riscv_insts_base.sail:714)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:714)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:714)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:714)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("1110011"),model/riscv_insts_base.sail:714)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:716),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MRET"),model/riscv_insts_base.sail:716),[(P_aux(P_lit(L_aux(L_unit,model/riscv_insts_base.sail:716)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("neq_anything"),model/prelude.sail:47),[(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_insts_base.sail:717)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)));(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_insts_base.sail:717)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:43)),model/prelude.sail:43)),E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_base.sail:718),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:718)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)),E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("ext_check_xret_priv"),model/riscv_insts_base.sail:719),[(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_insts_base.sail:719)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_exceptions.sail:6)),model/riscv_sys_exceptions.sail:6)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex7457#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7457#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("ext_fail_xret_priv"),model/riscv_insts_base.sail:720),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:720)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:8)),model/riscv_sys_exceptions.sail:8)),E_aux(E_app(Id_aux(Id("set_next_pc"),model/riscv_insts_base.sail:721),[(E_aux(E_app(Id_aux(Id("exception_handler"),model/riscv_insts_base.sail:721),[(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_insts_base.sail:721)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)));(E_aux(E_app(Id_aux(Id("CTL_MRET"),model/riscv_insts_base.sail:721),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:721)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268),[]),Unknown)));(E_aux(E_id(Id_aux(Id("PC"),model/riscv_insts_base.sail:721)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:722)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:725),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("MRET"),model/riscv_insts_base.sail:725),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:725)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mret"),model/riscv_insts_base.sail:725)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:728),Tu_aux(Tu_ty_id(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_base.sail:728)),model/riscv_insts_base.sail:728),Id_aux(Id("SRET"),model/riscv_insts_base.sail:728)),model/riscv_insts_base.sail:728)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:730),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("SRET"),model/riscv_insts_base.sail:730),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:730)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0001000"),model/riscv_insts_base.sail:731)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00010"),model/riscv_insts_base.sail:731)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:731)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:731)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:731)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("1110011"),model/riscv_insts_base.sail:731)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:733),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("SRET"),model/riscv_insts_base.sail:733),[(P_aux(P_lit(L_aux(L_unit,model/riscv_insts_base.sail:733)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:734)),model/riscv_insts_base.sail:734),P_aux(P_id(Id_aux(Id("sret_illegal"),model/riscv_insts_base.sail:734)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7476#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:734)),model/riscv_insts_base.sail:734)),E_aux(E_case(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_insts_base.sail:734)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("User"),model/riscv_insts_base.sail:735)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_lit(L_aux(L_true,model/riscv_insts_base.sail:735)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_insts_base.sail:736)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_insts_base.sail:736),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:736)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex7462#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7462#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_TSR"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_insts_base.sail:736)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_insts_base.sail:736)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex7464#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex7465#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7464#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex7465#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_insts_base.sail:737)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("haveSupMode"),model/riscv_insts_base.sail:737),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:737)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:101)),model/riscv_sys_regs.sail:101)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex7471#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7471#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:734)),model/riscv_insts_base.sail:734))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_id(Id_aux(Id("sret_illegal"),model/riscv_insts_base.sail:739)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7476#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_base.sail:740),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:740)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)),E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("ext_check_xret_priv"),model/riscv_insts_base.sail:741),[(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_insts_base.sail:741)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_exceptions.sail:6)),model/riscv_sys_exceptions.sail:6)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex7477#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7477#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("ext_fail_xret_priv"),model/riscv_insts_base.sail:742),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:742)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:8)),model/riscv_sys_exceptions.sail:8)),E_aux(E_app(Id_aux(Id("set_next_pc"),model/riscv_insts_base.sail:743),[(E_aux(E_app(Id_aux(Id("exception_handler"),model/riscv_insts_base.sail:743),[(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_insts_base.sail:743)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)));(E_aux(E_app(Id_aux(Id("CTL_SRET"),model/riscv_insts_base.sail:743),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:743)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268),[]),Unknown)));(E_aux(E_id(Id_aux(Id("PC"),model/riscv_insts_base.sail:743)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:744)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:747),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("SRET"),model/riscv_insts_base.sail:747),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:747)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("sret"),model/riscv_insts_base.sail:747)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:750),Tu_aux(Tu_ty_id(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_base.sail:750)),model/riscv_insts_base.sail:750),Id_aux(Id("EBREAK"),model/riscv_insts_base.sail:750)),model/riscv_insts_base.sail:750)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:752),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("EBREAK"),model/riscv_insts_base.sail:752),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:752)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("000000000001"),model/riscv_insts_base.sail:753)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:753)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:753)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:753)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("1110011"),model/riscv_insts_base.sail:753)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:755),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("EBREAK"),model/riscv_insts_base.sail:755),[(P_aux(P_lit(L_aux(L_unit,model/riscv_insts_base.sail:755)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_base.sail:756),[(E_aux(E_id(Id_aux(Id("PC"),model/riscv_insts_base.sail:756)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("E_Breakpoint"),model/riscv_insts_base.sail:756),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:756)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:757)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:760),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("EBREAK"),model/riscv_insts_base.sail:760),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:760)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("ebreak"),model/riscv_insts_base.sail:760)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:763),Tu_aux(Tu_ty_id(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_base.sail:763)),model/riscv_insts_base.sail:763),Id_aux(Id("WFI"),model/riscv_insts_base.sail:763)),model/riscv_insts_base.sail:763)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:765),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("WFI"),model/riscv_insts_base.sail:765),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:765)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("000100000101"),model/riscv_insts_base.sail:766)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:766)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:766)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:766)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("1110011"),model/riscv_insts_base.sail:766)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:768),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("WFI"),model/riscv_insts_base.sail:768),[(P_aux(P_lit(L_aux(L_unit,model/riscv_insts_base.sail:768)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_case(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_insts_base.sail:769)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_insts_base.sail:770)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("platform_wfi"),model/riscv_insts_base.sail:770),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:770)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:394)),model/riscv_platform.sail:394)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:770)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_insts_base.sail:771)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_TW"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_insts_base.sail:771)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_insts_base.sail:771)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_base.sail:772),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:772)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:772)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("platform_wfi"),model/riscv_insts_base.sail:773),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:773)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:394)),model/riscv_platform.sail:394)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:773)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("User"),model/riscv_insts_base.sail:774)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_base.sail:774),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:774)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:774)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:777),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("WFI"),model/riscv_insts_base.sail:777),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:777)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("wfi"),model/riscv_insts_base.sail:777)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_base.sail:780),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:780)),model/riscv_insts_base.sail:780));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_base.sail:780)),model/riscv_insts_base.sail:780))]),model/riscv_insts_base.sail:780),Id_aux(Id("SFENCE_VMA"),model/riscv_insts_base.sail:780)),model/riscv_insts_base.sail:780)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_base.sail:782),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("SFENCE_VMA"),model/riscv_insts_base.sail:782),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:782)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:782)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0001001"),model/riscv_insts_base.sail:783)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:783)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:783)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_base.sail:783)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:783)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("1110011"),model/riscv_insts_base.sail:783)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_base.sail:785),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("SFENCE_VMA"),model/riscv_insts_base.sail:785),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:785)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:785)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:780)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_base.sail:786),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:786)),model/riscv_insts_base.sail:786)),model/riscv_insts_base.sail:786))]),model/riscv_insts_base.sail:786),P_aux(P_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:786)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_base.sail:786),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:786))]),model/riscv_insts_base.sail:786))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_base.sail:786),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:786))]),model/riscv_insts_base.sail:786)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:786)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:786)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("None"),model/riscv_insts_base.sail:786),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:786)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_base.sail:786),[(E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:786)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_base.sail:786),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:786))]),model/riscv_insts_base.sail:786))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_base.sail:787),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_base.sail:787)),model/riscv_insts_base.sail:787)),model/riscv_insts_base.sail:787))]),model/riscv_insts_base.sail:787),P_aux(P_id(Id_aux(Id("asid"),model/riscv_insts_base.sail:787)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_base.sail:787),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:787))]),model/riscv_insts_base.sail:787))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_base.sail:787),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:787))]),model/riscv_insts_base.sail:787)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:787)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_insts_base.sail:787)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_app(Id_aux(Id("None"),model/riscv_insts_base.sail:787),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:787)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_base.sail:787),[(E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:787)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_base.sail:787),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:787))]),model/riscv_insts_base.sail:787))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_insts_base.sail:788)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("User"),model/riscv_insts_base.sail:789)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_base.sail:789),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:789)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:789)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Supervisor"),model/riscv_insts_base.sail:790)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("architecture"),model/riscv_insts_base.sail:790),[(E_aux(E_app(Id_aux(Id("get_mstatus_SXL"),model/riscv_insts_base.sail:790),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_insts_base.sail:790)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:47)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48)));(E_aux(E_app(Id_aux(Id("_get_Mstatus_TVM"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_insts_base.sail:790)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Some"),model/riscv_insts_base.sail:791),[(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48)));(P_aux(P_lit(L_aux(L_bin("1"),model/riscv_insts_base.sail:791)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_base.sail:791),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_base.sail:791)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_base.sail:791)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_app(Id_aux(Id("Some"),model/riscv_insts_base.sail:792),[(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48)));(P_aux(P_lit(L_aux(L_bin("0"),model/riscv_insts_base.sail:792)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("flush_TLB"),model/riscv_insts_base.sail:792),[(E_aux(E_id(Id_aux(Id("asid"),model/riscv_insts_base.sail:792)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_base.sail:787),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:787))]),model/riscv_insts_base.sail:787)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:792)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_base.sail:786),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:786))]),model/riscv_insts_base.sail:786)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_rv64.sail:66)),model/riscv_vmem_rv64.sail:66)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:792)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_types.sail:48),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_types.sail:48)),model/riscv_types.sail:48)),model/riscv_types.sail:48))]),model/riscv_types.sail:48));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))]),Unknown)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_insts_base.sail:793),[(E_aux(E_lit(L_aux(L_string("unimplemented sfence architecture"),model/riscv_insts_base.sail:793)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("Machine"),model/riscv_insts_base.sail:795)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("flush_TLB"),model/riscv_insts_base.sail:795),[(E_aux(E_id(Id_aux(Id("asid"),model/riscv_insts_base.sail:795)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_base.sail:787),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:787))]),model/riscv_insts_base.sail:787)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_base.sail:795)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_base.sail:786),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:786))]),model/riscv_insts_base.sail:786)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_rv64.sail:66)),model/riscv_vmem_rv64.sail:66)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_base.sail:795)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_base.sail:799),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("SFENCE_VMA"),model/riscv_insts_base.sail:799),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:799)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:799)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("sfence.vma"),model/riscv_insts_base.sail:800)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_base.sail:800),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:800)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:800),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_base.sail:800)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_base.sail:800),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_base.sail:800)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_base.sail:800),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_base.sail:800)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("aqrl_str"),model/riscv_insts_aext.sail:7),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:7)),model/riscv_insts_aext.sail:7));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:7)),model/riscv_insts_aext.sail:7))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:7)),model/riscv_insts_aext.sail:7),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:7)),model/riscv_insts_aext.sail:7)),model/riscv_insts_aext.sail:7),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("aqrl_str"),model/riscv_insts_aext.sail:7),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:7)),model/riscv_insts_aext.sail:7),P_aux(P_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:7)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7528#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:7)),model/riscv_insts_aext.sail:7)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:7)),model/riscv_insts_aext.sail:7),P_aux(P_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:7)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7530#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:7)),model/riscv_insts_aext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:7)),model/riscv_insts_aext.sail:7));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:7)),model/riscv_insts_aext.sail:7))]),model/riscv_insts_aext.sail:7-13)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:8)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7528#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:8)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7530#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7528#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7530#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_insts_aext.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_insts_aext.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7528#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7530#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string(""),model/riscv_insts_aext.sail:9)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_insts_aext.sail:10)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_insts_aext.sail:10)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7528#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7530#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string(".rl"),model/riscv_insts_aext.sail:10)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_insts_aext.sail:11)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_insts_aext.sail:11)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7528#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7530#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string(".aq"),model/riscv_insts_aext.sail:11)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_insts_aext.sail:12)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_insts_aext.sail:12)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7528#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7530#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_string(".aqrl"),model/riscv_insts_aext.sail:12)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:7)),model/riscv_insts_aext.sail:7))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:7)),model/riscv_insts_aext.sail:7));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:7)),model/riscv_insts_aext.sail:7))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:7)),model/riscv_insts_aext.sail:7),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("lrsc_width_str"),model/riscv_insts_aext.sail:15),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:15)),model/riscv_insts_aext.sail:15))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:15)),model/riscv_insts_aext.sail:15),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:15)),model/riscv_insts_aext.sail:15)),model/riscv_insts_aext.sail:15),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("lrsc_width_str"),model/riscv_insts_aext.sail:15),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:15)),model/riscv_insts_aext.sail:15),P_aux(P_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:15)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:15)),model/riscv_insts_aext.sail:15))),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:15)),model/riscv_insts_aext.sail:15)),E_aux(E_case(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:16)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:15)),model/riscv_insts_aext.sail:15)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("BYTE"),model/riscv_insts_aext.sail:17)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:15)),model/riscv_insts_aext.sail:15)),E_aux(E_lit(L_aux(L_string(".b"),model/riscv_insts_aext.sail:17)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("HALF"),model/riscv_insts_aext.sail:18)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:15)),model/riscv_insts_aext.sail:15)),E_aux(E_lit(L_aux(L_string(".h"),model/riscv_insts_aext.sail:18)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("WORD"),model/riscv_insts_aext.sail:19)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:15)),model/riscv_insts_aext.sail:15)),E_aux(E_lit(L_aux(L_string(".w"),model/riscv_insts_aext.sail:19)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("DOUBLE"),model/riscv_insts_aext.sail:20)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:15)),model/riscv_insts_aext.sail:15)),E_aux(E_lit(L_aux(L_string(".d"),model/riscv_insts_aext.sail:20)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:15)),model/riscv_insts_aext.sail:15))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:15)),model/riscv_insts_aext.sail:15))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:15)),model/riscv_insts_aext.sail:15),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_aext.sail:24),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24))]),model/riscv_insts_aext.sail:24),Id_aux(Id("LOADRES"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_aext.sail:26),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("LOADRES"),model/riscv_insts_aext.sail:26),[(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:26)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7549#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:26)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7550#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:26)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("word_width_bytes"),model/riscv_insts_aext.sail:26),[(E_aux(E_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:26)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:356),Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:356),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))]),model/riscv_types.sail:356)),model/riscv_types.sail:356)));(E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex7551#"),Unknown)),Unknown))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7551#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7551#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7551#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7551#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7551#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:38)),Unknown))]),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("00010"),model/riscv_insts_aext.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_app(Id_aux(Id("bool_bits"),model/riscv_insts_aext.sail:27),[(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:27)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7557#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:332)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_app(Id_aux(Id("bool_bits"),model/riscv_insts_aext.sail:27),[(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:27)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7560#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:332)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_aext.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_aext.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_app(Id_aux(Id("size_bits"),model/riscv_insts_aext.sail:27),[(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:27)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:342)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0101111"),model/riscv_insts_aext.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("word_width_bytes"),model/riscv_insts_aext.sail:27),[(E_aux(E_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:27)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:356),Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:356),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))]),model/riscv_types.sail:356)),model/riscv_types.sail:356)));(E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex7563#"),Unknown)),Unknown))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7563#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7563#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7563#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7563#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7563#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:38)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("process_loadres"),model/riscv_insts_aext.sail:35),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([(QI_aux(QI_id(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_insts_aext.sail:35),Kid_aux(Var("'n"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35));(QI_aux(QI_constraint(NC_aux(NC_and(NC_aux(NC_bounded_lt(Nexp_aux(Nexp_constant(0),model/riscv_insts_aext.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35),Nexp_aux(Nexp_id(Id_aux(Id("xlen_bytes"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35))]),model/riscv_insts_aext.sail:35),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:35),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_aext.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:35))]),model/riscv_insts_aext.sail:35));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_aext.sail:35));(BE_aux(BE_rreg,model/riscv_insts_aext.sail:35));(BE_aux(BE_wreg,model/riscv_insts_aext.sail:35))]),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("process_loadres"),model/riscv_insts_aext.sail:36),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("value"),model/riscv_insts_aext.sail:36)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:35),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_aext.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:35))]),model/riscv_insts_aext.sail:35)));(P_aux(P_id(Id_aux(Id("is_unsigned"),model/riscv_insts_aext.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7573#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:35),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_aext.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:35))]),model/riscv_insts_aext.sail:35));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7573#"),Unknown)),Unknown)),Unknown))]),Unknown))]),model/riscv_insts_aext.sail:36-40)),E_aux(E_case(E_aux(E_app(Id_aux(Id("extend_value"),model/riscv_insts_aext.sail:37),[(E_aux(E_id(Id_aux(Id("is_unsigned"),model/riscv_insts_aext.sail:37)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7573#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_aext.sail:37)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:35),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_aext.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:35))]),model/riscv_insts_aext.sail:35)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_insts_aext.sail:38),[(P_aux(P_id(Id_aux(Id("result"),model/riscv_insts_aext.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("load_reservation"),model/riscv_insts_aext.sail:38),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:138)),model/riscv_sys_control.sail:138)));(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_insts_aext.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_aext.sail:38)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_insts_aext.sail:39),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:39)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_aext.sail:39),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:39)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:39)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:39)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:35),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_insts_aext.sail:35),Nexp_aux(Nexp_var(Kid_aux(Var("'n"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:35))]),model/riscv_insts_aext.sail:35));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7573#"),Unknown)),Unknown)),Unknown))]),Unknown))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_aext.sail:35));(BE_aux(BE_rreg,model/riscv_insts_aext.sail:35));(BE_aux(BE_wreg,model/riscv_insts_aext.sail:35))]),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35)))]),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_aext.sail:42),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("LOADRES"),model/riscv_insts_aext.sail:42),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:42)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7576#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:42)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7577#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:42)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_aext.sail:24)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("haveAtomics"),model/riscv_insts_aext.sail:43),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_aext.sail:43)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:98)),model/riscv_sys_regs.sail:98)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("ext_data_get_addr"),model/riscv_insts_aext.sail:47),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:47)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("zeros_implicit"),model/prelude.sail:124),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("Read"),model/riscv_insts_aext.sail:47),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_aext.sail:47)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:47)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_DataAddr_Error"),model/riscv_insts_aext.sail:48),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:48)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks_common.sail:21)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("ext_handle_data_check_error"),model/riscv_insts_aext.sail:48),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:48)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks_common.sail:21)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:54)),model/riscv_addr_checks.sail:54)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:48)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_DataAddr_OK"),model/riscv_insts_aext.sail:49),[(P_aux(P_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:50)),model/riscv_insts_aext.sail:50),P_aux(P_id(Id_aux(Id("aligned"),model/riscv_insts_aext.sail:50)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7581#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:50)),model/riscv_insts_aext.sail:50)),E_aux(E_case(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:54)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("BYTE"),model/riscv_insts_aext.sail:55)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24)),E_aux(E_lit(L_aux(L_true,model/riscv_insts_aext.sail:55)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("HALF"),model/riscv_insts_aext.sail:56)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:56)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_aext.sail:56)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_aext.sail:56)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_insts_aext.sail:56)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("WORD"),model/riscv_insts_aext.sail:57)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:57)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_aext.sail:57)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_aext.sail:57)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00"),model/riscv_insts_aext.sail:57)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("DOUBLE"),model/riscv_insts_aext.sail:58)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_insts_aext.sail:58)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_aext.sail:58)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(2),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000"),model/riscv_insts_aext.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:50)),model/riscv_insts_aext.sail:50))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_id(Id_aux(Id("aligned"),model/riscv_insts_aext.sail:63)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7581#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7581#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_aext.sail:64),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:64)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("E_Load_Addr_Align"),model/riscv_insts_aext.sail:64),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_aext.sail:64)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:64)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_case(E_aux(E_app(Id_aux(Id("translateAddr"),model/riscv_insts_aext.sail:65),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:65)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("Read"),model/riscv_insts_aext.sail:65),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_aext.sail:65)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Failure"),model/riscv_insts_aext.sail:66),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:66)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_aext.sail:66),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:66)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:66)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:66)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Address"),model/riscv_insts_aext.sail:67),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:67)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:68)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("WORD"),model/riscv_insts_aext.sail:69)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("process_loadres"),model/riscv_insts_aext.sail:69),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:69)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:69)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("mem_read"),model/riscv_insts_aext.sail:69),[(E_aux(E_app(Id_aux(Id("Read"),model/riscv_insts_aext.sail:69),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_aext.sail:69)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:69)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_aext.sail:69)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:69)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7576#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:69)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7577#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_true,model/riscv_insts_aext.sail:69)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(4),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_aext.sail:69)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("DOUBLE"),model/riscv_insts_aext.sail:70)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24)));(P_aux(P_lit(L_aux(L_num(64),model/riscv_insts_aext.sail:70)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("process_loadres"),model/riscv_insts_aext.sail:70),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:70)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:70)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("mem_read"),model/riscv_insts_aext.sail:70),[(E_aux(E_app(Id_aux(Id("Read"),model/riscv_insts_aext.sail:70),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_aext.sail:70)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:70)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_insts_aext.sail:70)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:70)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7576#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:70)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7577#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_true,model/riscv_insts_aext.sail:70)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(8),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_aext.sail:70)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_aext.sail:35)),model/riscv_insts_aext.sail:35))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_insts_aext.sail:71),[(E_aux(E_lit(L_aux(L_string("LOADRES expected WORD or DOUBLE"),model/riscv_insts_aext.sail:71)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_aext.sail:77),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_aext.sail:77)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:78)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_aext.sail:82),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("LOADRES"),model/riscv_insts_aext.sail:82),[(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:82)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7586#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:82)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7587#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:82)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:82)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:82)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("lr."),model/riscv_insts_aext.sail:83)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("size_mnemonic"),model/riscv_insts_aext.sail:83),[(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:83)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:349)),model/riscv_types.sail:349)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("maybe_aq"),model/riscv_insts_aext.sail:83),[(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:83)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7588#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("maybe_rl"),model/riscv_insts_aext.sail:83),[(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:83)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7589#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_aext.sail:83),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_aext.sail:83)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_aext.sail:83),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:83)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_aext.sail:83),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_aext.sail:83)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_aext.sail:83),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:83)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_aext.sail:86),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86))]),model/riscv_insts_aext.sail:86),Id_aux(Id("STORECON"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_aext.sail:88),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("STORECON"),model/riscv_insts_aext.sail:88),[(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:88)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7609#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:88)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7610#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_aext.sail:88)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:88)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:88)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:88)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("word_width_bytes"),model/riscv_insts_aext.sail:88),[(E_aux(E_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:88)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:356),Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:356),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))]),model/riscv_types.sail:356)),model/riscv_types.sail:356)));(E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex7611#"),Unknown)),Unknown))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7611#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7611#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7611#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7611#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7611#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:38)),Unknown))]),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("00011"),model/riscv_insts_aext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_app(Id_aux(Id("bool_bits"),model/riscv_insts_aext.sail:89),[(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7617#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:332)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_app(Id_aux(Id("bool_bits"),model/riscv_insts_aext.sail:89),[(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7620#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:332)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_aext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_aext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_app(Id_aux(Id("size_bits"),model/riscv_insts_aext.sail:89),[(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:89)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:342)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0101111"),model/riscv_insts_aext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("word_width_bytes"),model/riscv_insts_aext.sail:89),[(E_aux(E_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:89)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:356),Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:356),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))]),model/riscv_types.sail:356)),model/riscv_types.sail:356)));(E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex7623#"),Unknown)),Unknown))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7623#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7623#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7623#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7623#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7623#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:38)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_aext.sail:92),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("STORECON"),model/riscv_insts_aext.sail:92),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:92)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7630#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:92)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7631#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_aext.sail:92)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:92)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:92)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:92)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_aext.sail:86)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bool"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("speculate_conditional"),model/riscv_insts_aext.sail:93),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_aext.sail:93)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:136)),model/riscv_sys_control.sail:136)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_aext.sail:93)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:30)),../sail/lib/flow.sail:30)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:97)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_aext.sail:97),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_insts_aext.sail:97)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_aext.sail:97)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("haveAtomics"),model/riscv_insts_aext.sail:99),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_aext.sail:99)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:98)),model/riscv_sys_regs.sail:98)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("ext_data_get_addr"),model/riscv_insts_aext.sail:106),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("zeros_implicit"),model/prelude.sail:124),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("Write"),model/riscv_insts_aext.sail:106),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_aext.sail:106)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:106)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_DataAddr_Error"),model/riscv_insts_aext.sail:107),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:107)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks_common.sail:21)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("ext_handle_data_check_error"),model/riscv_insts_aext.sail:107),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:107)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks_common.sail:21)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:54)),model/riscv_addr_checks.sail:54)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:107)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_DataAddr_OK"),model/riscv_insts_aext.sail:108),[(P_aux(P_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:109)),model/riscv_insts_aext.sail:109),P_aux(P_id(Id_aux(Id("aligned"),model/riscv_insts_aext.sail:109)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7638#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:109)),model/riscv_insts_aext.sail:109)),E_aux(E_case(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:113)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("BYTE"),model/riscv_insts_aext.sail:114)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)),E_aux(E_lit(L_aux(L_true,model/riscv_insts_aext.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("HALF"),model/riscv_insts_aext.sail:115)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:115)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_aext.sail:115)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_aext.sail:115)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_insts_aext.sail:115)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("WORD"),model/riscv_insts_aext.sail:116)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_aext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_aext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00"),model/riscv_insts_aext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("DOUBLE"),model/riscv_insts_aext.sail:117)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)),E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_insts_aext.sail:117)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_aext.sail:117)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(2),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000"),model/riscv_insts_aext.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:109)),model/riscv_insts_aext.sail:109))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_id(Id_aux(Id("aligned"),model/riscv_insts_aext.sail:119)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7638#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7638#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_aext.sail:120),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("E_SAMO_Addr_Align"),model/riscv_insts_aext.sail:120),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_aext.sail:120)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:120)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bool"),../sail/lib/flow.sail:43),[(E_aux(E_app(Id_aux(Id("match_reservation"),model/riscv_insts_aext.sail:122),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:122)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:139)),model/riscv_sys_control.sail:139)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_aext.sail:122)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/flow.sail:30)),../sail/lib/flow.sail:30)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:124)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_aext.sail:124),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_insts_aext.sail:124)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_app(Id_aux(Id("cancel_reservation"),model/riscv_insts_aext.sail:124),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_aext.sail:124)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:140)),model/riscv_sys_control.sail:140)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_aext.sail:124)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("translateAddr"),model/riscv_insts_aext.sail:126),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:126)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("Write"),model/riscv_insts_aext.sail:126),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_aext.sail:126)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Failure"),model/riscv_insts_aext.sail:128),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:128)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_aext.sail:128),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:128)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:128)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:128)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Address"),model/riscv_insts_aext.sail:129),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:130),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130))]),model/riscv_insts_aext.sail:130),P_aux(P_id(Id_aux(Id("eares"),model/riscv_insts_aext.sail:130)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:130),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130))]),model/riscv_insts_aext.sail:130))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:130),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130))]),model/riscv_insts_aext.sail:130)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:130)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("WORD"),model/riscv_insts_aext.sail:131)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("mem_write_ea"),model/riscv_insts_aext.sail:131),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:131)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_aext.sail:131)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:131)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7630#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:131)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7631#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_true,model/riscv_insts_aext.sail:131)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:123),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("DOUBLE"),model/riscv_insts_aext.sail:132)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)));(P_aux(P_lit(L_aux(L_num(64),model/riscv_insts_aext.sail:132)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("mem_write_ea"),model/riscv_insts_aext.sail:132),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_insts_aext.sail:132)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:132)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7630#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:132)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7631#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_true,model/riscv_insts_aext.sail:132)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:123),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_insts_aext.sail:133),[(E_aux(E_lit(L_aux(L_string("STORECON expected word or double"),model/riscv_insts_aext.sail:133)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:130),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130))]),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:130),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130))]),model/riscv_insts_aext.sail:130))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("eares"),model/riscv_insts_aext.sail:135)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:130),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130))]),model/riscv_insts_aext.sail:130)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_insts_aext.sail:136),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:136)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:130),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130))]),model/riscv_insts_aext.sail:130)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_aext.sail:136),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:136)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:136)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:136)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_insts_aext.sail:137),[(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:130)),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:130),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130)),model/riscv_insts_aext.sail:130))]),model/riscv_insts_aext.sail:130)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("rs2_val"),model/riscv_insts_aext.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_aext.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:139),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139))]),model/riscv_insts_aext.sail:139),P_aux(P_id(Id_aux(Id("res"),model/riscv_insts_aext.sail:139)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:139),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139))]),model/riscv_insts_aext.sail:139))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:139),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139))]),model/riscv_insts_aext.sail:139)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:139)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("WORD"),model/riscv_insts_aext.sail:140)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("mem_write_value"),model/riscv_insts_aext.sail:140),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:140)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_aext.sail:140)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_aext.sail:140)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_aext.sail:140)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_aext.sail:140)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:140)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7630#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:140)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7631#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_true,model/riscv_insts_aext.sail:140)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("DOUBLE"),model/riscv_insts_aext.sail:141)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)));(P_aux(P_lit(L_aux(L_num(64),model/riscv_insts_aext.sail:141)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("mem_write_value"),model/riscv_insts_aext.sail:141),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:141)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_insts_aext.sail:141)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_aext.sail:141)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:141)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7630#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:141)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7631#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_true,model/riscv_insts_aext.sail:141)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_insts_aext.sail:142),[(E_aux(E_lit(L_aux(L_string("STORECON expected word or double"),model/riscv_insts_aext.sail:142)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:139),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139))]),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:139),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139))]),model/riscv_insts_aext.sail:139))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("res"),model/riscv_insts_aext.sail:144)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:139),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139))]),model/riscv_insts_aext.sail:139)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_insts_aext.sail:145),[(P_aux(P_lit(L_aux(L_true,model/riscv_insts_aext.sail:145)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:139),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139))]),model/riscv_insts_aext.sail:139)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_aext.sail:145),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_insts_aext.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_app(Id_aux(Id("cancel_reservation"),model/riscv_insts_aext.sail:145),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_aext.sail:145)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:140)),model/riscv_sys_control.sail:140)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_aext.sail:145)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_insts_aext.sail:146),[(P_aux(P_lit(L_aux(L_false,model/riscv_insts_aext.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:139),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139))]),model/riscv_insts_aext.sail:139)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:146)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_aext.sail:146),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("1"),model/riscv_insts_aext.sail:146)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_app(Id_aux(Id("cancel_reservation"),model/riscv_insts_aext.sail:146),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_aext.sail:146)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:140)),model/riscv_sys_control.sail:140)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_aext.sail:146)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_insts_aext.sail:147),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:147)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:139),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139)),model/riscv_insts_aext.sail:139))]),model/riscv_insts_aext.sail:139)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_aext.sail:147),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:147)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:147)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:147)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_aext.sail:158),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_aext.sail:158)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:159)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_aext.sail:164),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("STORECON"),model/riscv_insts_aext.sail:164),[(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:164)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7648#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:164)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7649#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_aext.sail:164)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:164)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:164)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:164)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("sc."),model/riscv_insts_aext.sail:165)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("size_mnemonic"),model/riscv_insts_aext.sail:165),[(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:165)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:349)),model/riscv_types.sail:349)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("maybe_aq"),model/riscv_insts_aext.sail:165),[(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:165)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7650#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("maybe_rl"),model/riscv_insts_aext.sail:165),[(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:165)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7651#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_aext.sail:165),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_aext.sail:165)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_aext.sail:165),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_aext.sail:165),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_aext.sail:165)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_aext.sail:165),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_aext.sail:165),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_aext.sail:165)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_aext.sail:165),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_aext.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_aext.sail:168),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168))]),model/riscv_insts_aext.sail:168),Id_aux(Id("AMO"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("encdec_amoop"),model/riscv_insts_aext.sail:170),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_aext.sail:170)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:170)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("encdec_amoop"),model/riscv_insts_aext.sail:170),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_aext.sail:170),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170))]),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOSWAP"),model/riscv_insts_aext.sail:171)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("00001"),model/riscv_insts_aext.sail:171)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_aext.sail:170)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:170)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOADD"),model/riscv_insts_aext.sail:172)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_aext.sail:172)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_aext.sail:170)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:170)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOXOR"),model/riscv_insts_aext.sail:173)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("00100"),model/riscv_insts_aext.sail:173)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_aext.sail:170)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:170)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOAND"),model/riscv_insts_aext.sail:174)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("01100"),model/riscv_insts_aext.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_aext.sail:170)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:170)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOOR"),model/riscv_insts_aext.sail:175)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("01000"),model/riscv_insts_aext.sail:175)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_aext.sail:170)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:170)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOMIN"),model/riscv_insts_aext.sail:176)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("10000"),model/riscv_insts_aext.sail:176)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_aext.sail:170)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:170)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOMAX"),model/riscv_insts_aext.sail:177)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("10100"),model/riscv_insts_aext.sail:177)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_aext.sail:170)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:170)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOMINU"),model/riscv_insts_aext.sail:178)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("11000"),model/riscv_insts_aext.sail:178)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_aext.sail:170)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:170)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOMAXU"),model/riscv_insts_aext.sail:179)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("11100"),model/riscv_insts_aext.sail:179)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_aext.sail:170)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:170)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_aext.sail:182),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("AMO"),model/riscv_insts_aext.sail:182),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_aext.sail:182)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:182)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7722#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:182)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7723#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_aext.sail:182)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:182)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:182)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:182)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("word_width_bytes"),model/riscv_insts_aext.sail:182),[(E_aux(E_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:182)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:356),Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:356),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))]),model/riscv_types.sail:356)),model/riscv_types.sail:356)));(E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex7724#"),Unknown)),Unknown))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7724#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7724#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7724#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7724#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7724#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:38)),Unknown))]),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_app(Id_aux(Id("encdec_amoop"),model/riscv_insts_aext.sail:183),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_aext.sail:183)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:170)),model/riscv_insts_aext.sail:170)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_aext.sail:170)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_app(Id_aux(Id("bool_bits"),model/riscv_insts_aext.sail:183),[(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:183)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7732#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:332)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_app(Id_aux(Id("bool_bits"),model/riscv_insts_aext.sail:183),[(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:183)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7735#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:332)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_aext.sail:183)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:183)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_aext.sail:183)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_app(Id_aux(Id("size_bits"),model/riscv_insts_aext.sail:183),[(MP_aux(MP_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:183)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_types.sail:342)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:183)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0101111"),model/riscv_insts_aext.sail:183)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("lteq_int"),../sail/lib/flow.sail:48),[(E_aux(E_app(Id_aux(Id("word_width_bytes"),model/riscv_insts_aext.sail:183),[(E_aux(E_id(Id_aux(Id("size"),model/riscv_insts_aext.sail:183)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:342)),model/riscv_types.sail:342)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,model/riscv_types.sail:356),Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom"),model/riscv_types.sail:356),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'s"),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356))]),model/riscv_types.sail:356)),model/riscv_types.sail:356)));(E_aux(E_lit(L_aux(L_num(8),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex7738#"),Unknown)),Unknown))],NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7738#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7738#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(2),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7738#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(4),model/riscv_types.sail:356)),model/riscv_types.sail:356),NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7738#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356)),model/riscv_types.sail:356),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex7738#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(8),Unknown)),../sail/lib/flow.sail:38)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_aext.sail:187),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("AMO"),model/riscv_insts_aext.sail:187),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("op"),model/riscv_insts_aext.sail:187)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(P_aux(P_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:187)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7745#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:187)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_aext.sail:187)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:187)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:187)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:187)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_aext.sail:168)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("haveAtomics"),model/riscv_insts_aext.sail:188),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_aext.sail:188)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:98)),model/riscv_sys_regs.sail:98)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("ext_data_get_addr"),model/riscv_insts_aext.sail:192),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:192)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("zeros_implicit"),model/prelude.sail:124),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("ReadWrite"),model/riscv_insts_aext.sail:192),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_aext.sail:192)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:192)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_DataAddr_Error"),model/riscv_insts_aext.sail:193),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:193)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks_common.sail:21)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("ext_handle_data_check_error"),model/riscv_insts_aext.sail:193),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:193)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks_common.sail:21)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:54)),model/riscv_addr_checks.sail:54)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:193)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_DataAddr_OK"),model/riscv_insts_aext.sail:194),[(P_aux(P_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:194)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_DataAddr_Check"),model/riscv_addr_checks.sail:50),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:45)),model/riscv_addr_checks.sail:50))]),model/riscv_addr_checks.sail:50)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("translateAddr"),model/riscv_insts_aext.sail:195),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:195)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("ReadWrite"),model/riscv_insts_aext.sail:195),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_aext.sail:195)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Failure"),model/riscv_insts_aext.sail:196),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:196)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_aext.sail:196),[(E_aux(E_id(Id_aux(Id("vaddr"),model/riscv_insts_aext.sail:196)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:196)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:196)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Address"),model/riscv_insts_aext.sail:197),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:197)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:198),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198))]),model/riscv_insts_aext.sail:198),P_aux(P_id(Id_aux(Id("eares"),model/riscv_insts_aext.sail:198)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:198),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198))]),model/riscv_insts_aext.sail:198))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:198),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198))]),model/riscv_insts_aext.sail:198)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:198)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("WORD"),model/riscv_insts_aext.sail:199)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("mem_write_ea"),model/riscv_insts_aext.sail:199),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:199)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_aext.sail:199)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:199)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7745#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:199)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:22),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex7745#"),Unknown)),../sail/lib/flow.sail:22),NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))]),../sail/lib/flow.sail:22)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:199)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_true,model/riscv_insts_aext.sail:199)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:123),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("DOUBLE"),model/riscv_insts_aext.sail:200)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(P_aux(P_lit(L_aux(L_num(64),model/riscv_insts_aext.sail:200)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("mem_write_ea"),model/riscv_insts_aext.sail:200),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:200)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_insts_aext.sail:200)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:200)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7745#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:200)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:22),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex7745#"),Unknown)),../sail/lib/flow.sail:22),NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))]),../sail/lib/flow.sail:22)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:200)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_true,model/riscv_insts_aext.sail:200)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:123),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_mem.sail:123)),model/riscv_mem.sail:123)),model/riscv_mem.sail:123))]),model/riscv_mem.sail:123))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_insts_aext.sail:201),[(E_aux(E_lit(L_aux(L_string("AMO expected WORD or DOUBLE"),model/riscv_insts_aext.sail:201)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:198),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198))]),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:198),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198))]),model/riscv_insts_aext.sail:198))),None),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_aext.sail:203)),model/riscv_insts_aext.sail:203),Id_aux(Id("rs2_val"),model/riscv_insts_aext.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_aext.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_case(E_aux(E_id(Id_aux(Id("eares"),model/riscv_insts_aext.sail:204)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:198),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198))]),model/riscv_insts_aext.sail:198)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_insts_aext.sail:205),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:205)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:198),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198))]),model/riscv_insts_aext.sail:198)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_aext.sail:205),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:205)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:205)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:205)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_insts_aext.sail:206),[(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:198)),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:198),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198)),model/riscv_insts_aext.sail:198))]),model/riscv_insts_aext.sail:198)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:207),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_aext.sail:207)),model/riscv_insts_aext.sail:207)),model/riscv_insts_aext.sail:207))]),model/riscv_insts_aext.sail:207),P_aux(P_id(Id_aux(Id("rval"),model/riscv_insts_aext.sail:207)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:207),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:207))]),model/riscv_insts_aext.sail:207))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:207),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:207))]),model/riscv_insts_aext.sail:207)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:207)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("WORD"),model/riscv_insts_aext.sail:208)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("extend_value"),model/riscv_insts_aext.sail:208),[(E_aux(E_lit(L_aux(L_false,model/riscv_insts_aext.sail:208)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("mem_read"),model/riscv_insts_aext.sail:208),[(E_aux(E_app(Id_aux(Id("ReadWrite"),model/riscv_insts_aext.sail:208),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_aext.sail:208)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:208)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_aext.sail:208)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:208)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7745#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:208)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7745#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:208)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:22),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex7745#"),Unknown)),../sail/lib/flow.sail:22),NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))]),../sail/lib/flow.sail:22)));(E_aux(E_lit(L_aux(L_true,model/riscv_insts_aext.sail:208)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(4),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("DOUBLE"),model/riscv_insts_aext.sail:209)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(P_aux(P_lit(L_aux(L_num(64),model/riscv_insts_aext.sail:209)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("extend_value"),model/riscv_insts_aext.sail:209),[(E_aux(E_lit(L_aux(L_false,model/riscv_insts_aext.sail:209)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("mem_read"),model/riscv_insts_aext.sail:209),[(E_aux(E_app(Id_aux(Id("ReadWrite"),model/riscv_insts_aext.sail:209),[(E_aux(E_id(Id_aux(Id("Data"),model/riscv_insts_aext.sail:209)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),model/riscv_vmem_types.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:209)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_insts_aext.sail:209)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:209)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7745#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:209)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7745#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:209)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:22),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex7745#"),Unknown)),../sail/lib/flow.sail:22),NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))]),../sail/lib/flow.sail:22)));(E_aux(E_lit(L_aux(L_true,model/riscv_insts_aext.sail:209)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(8),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_base.sail:295),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_base.sail:295))]),model/riscv_insts_base.sail:295))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_insts_aext.sail:210),[(E_aux(E_lit(L_aux(L_string("AMO expected WORD or DOUBLE"),model/riscv_insts_aext.sail:210)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:207),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:207))]),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:207),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:207))]),model/riscv_insts_aext.sail:207))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("rval"),model/riscv_insts_aext.sail:212)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:207),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:207))]),model/riscv_insts_aext.sail:207)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_insts_aext.sail:213),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:213)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:207),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:207))]),model/riscv_insts_aext.sail:207)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_aext.sail:213),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:213)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:213)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:213)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_insts_aext.sail:214),[(P_aux(P_id(Id_aux(Id("loaded"),model/riscv_insts_aext.sail:214)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:207),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_aext.sail:207))]),model/riscv_insts_aext.sail:207)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_aext.sail:215)),model/riscv_insts_aext.sail:215),Id_aux(Id("result"),model/riscv_insts_aext.sail:215)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("op"),model/riscv_insts_aext.sail:216)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOSWAP"),model/riscv_insts_aext.sail:217)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)),E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_aext.sail:217)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOADD"),model/riscv_insts_aext.sail:218)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)),E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_aext.sail:218)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("loaded"),model/riscv_insts_aext.sail:218)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOXOR"),model/riscv_insts_aext.sail:219)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)),E_aux(E_app(Id_aux(Id("xor_vec"),model/prelude.sail:69),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_aext.sail:219)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("loaded"),model/riscv_insts_aext.sail:219)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOAND"),model/riscv_insts_aext.sail:220)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)),E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_aext.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("loaded"),model/riscv_insts_aext.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOOR"),model/riscv_insts_aext.sail:221)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)),E_aux(E_app(Id_aux(Id("or_vec"),../sail/lib/vector_dec.sail:174),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_aext.sail:221)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("loaded"),model/riscv_insts_aext.sail:221)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOMIN"),model/riscv_insts_aext.sail:226)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)),E_aux(E_app(Id_aux(Id("to_bits"),model/riscv_insts_aext.sail:226),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("min_int"),model/prelude.sail:91),[(E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_aext.sail:226),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_aext.sail:226)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)));(E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_aext.sail:226),[(E_aux(E_id(Id_aux(Id("loaded"),model/riscv_insts_aext.sail:226)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)))]),Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:85)),model/prelude.sail:85)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOMAX"),model/riscv_insts_aext.sail:227)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)),E_aux(E_app(Id_aux(Id("to_bits"),model/riscv_insts_aext.sail:227),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("max_int"),model/prelude.sail:93),[(E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_aext.sail:227),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_aext.sail:227)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)));(E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_aext.sail:227),[(E_aux(E_id(Id_aux(Id("loaded"),model/riscv_insts_aext.sail:227)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)))]),Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:89)),model/prelude.sail:89)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOMINU"),model/riscv_insts_aext.sail:228)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)),E_aux(E_app(Id_aux(Id("to_bits"),model/riscv_insts_aext.sail:228),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("min_nat"),model/prelude.sail:91),[(E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_aext.sail:228),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_aext.sail:228)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)));(E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_aext.sail:228),[(E_aux(E_id(Id_aux(Id("loaded"),model/riscv_insts_aext.sail:228)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:83)),model/prelude.sail:83)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("AMOMAXU"),model/riscv_insts_aext.sail:229)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)),E_aux(E_app(Id_aux(Id("to_bits"),model/riscv_insts_aext.sail:229),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("max_nat"),model/prelude.sail:93),[(E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_aext.sail:229),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_aext.sail:229)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)));(E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_aext.sail:229),[(E_aux(E_id(Id_aux(Id("loaded"),model/riscv_insts_aext.sail:229)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)))]),Typ_aux(Typ_id(Id_aux(Id("nat"),model/prelude.sail:87)),model/prelude.sail:87)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:232),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232))]),model/riscv_insts_aext.sail:232),P_aux(P_id(Id_aux(Id("wval"),model/riscv_insts_aext.sail:232)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:232),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232))]),model/riscv_insts_aext.sail:232))),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:232),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232))]),model/riscv_insts_aext.sail:232)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:232)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("WORD"),model/riscv_insts_aext.sail:233)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("mem_write_value"),model/riscv_insts_aext.sail:233),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:233)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_insts_aext.sail:233)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("result"),model/riscv_insts_aext.sail:233)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_aext.sail:233)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_aext.sail:233)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:233)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7745#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:233)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:22),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex7745#"),Unknown)),../sail/lib/flow.sail:22),NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))]),../sail/lib/flow.sail:22)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:233)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_true,model/riscv_insts_aext.sail:233)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("DOUBLE"),model/riscv_insts_aext.sail:234)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(P_aux(P_lit(L_aux(L_num(64),model/riscv_insts_aext.sail:234)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("mem_write_value"),model/riscv_insts_aext.sail:234),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:234)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(8),model/riscv_insts_aext.sail:234)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_insts_aext.sail:234)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:234)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7745#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:234)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:22),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex7745#"),Unknown)),../sail/lib/flow.sail:22),NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))]),../sail/lib/flow.sail:22)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:234)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7746#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_true,model/riscv_insts_aext.sail:234)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:206),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_mem.sail:206)),model/riscv_mem.sail:206)),model/riscv_mem.sail:206))]),model/riscv_mem.sail:206))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_insts_aext.sail:235),[(E_aux(E_lit(L_aux(L_string("AMO expected WORD or DOUBLE"),model/riscv_insts_aext.sail:235)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:232),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232))]),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:232),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232))]),model/riscv_insts_aext.sail:232))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("wval"),model/riscv_insts_aext.sail:237)),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:232),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232))]),model/riscv_insts_aext.sail:232)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_insts_aext.sail:238),[(P_aux(P_lit(L_aux(L_true,model/riscv_insts_aext.sail:238)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:232),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232))]),model/riscv_insts_aext.sail:232)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("loaded"),model/riscv_insts_aext.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_aext.sail:238)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_insts_aext.sail:239),[(P_aux(P_lit(L_aux(L_false,model/riscv_insts_aext.sail:239)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:232),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232))]),model/riscv_insts_aext.sail:232)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_insts_aext.sail:239),[(E_aux(E_lit(L_aux(L_string("AMO got false from mem_write_value"),model/riscv_insts_aext.sail:239)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_types.sail:248)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_insts_aext.sail:240),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:240)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_insts_aext.sail:232),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232)),model/riscv_insts_aext.sail:232))]),model/riscv_insts_aext.sail:232)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_insts_aext.sail:240),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_insts_aext.sail:240)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_insts_aext.sail:240)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:240)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_aext.sail:251),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_aext.sail:251)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_aext.sail:252)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("amo_mnemonic"),model/riscv_insts_aext.sail:256),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("amo_mnemonic"),model/riscv_insts_aext.sail:256),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOSWAP"),model/riscv_insts_aext.sail:257)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("amoswap"),model/riscv_insts_aext.sail:257)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOADD"),model/riscv_insts_aext.sail:258)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("amoadd"),model/riscv_insts_aext.sail:258)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOXOR"),model/riscv_insts_aext.sail:259)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("amoxor"),model/riscv_insts_aext.sail:259)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOAND"),model/riscv_insts_aext.sail:260)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("amoand"),model/riscv_insts_aext.sail:260)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOOR"),model/riscv_insts_aext.sail:261)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("amoor"),model/riscv_insts_aext.sail:261)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOMIN"),model/riscv_insts_aext.sail:262)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("amomin"),model/riscv_insts_aext.sail:262)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOMAX"),model/riscv_insts_aext.sail:263)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("amomax"),model/riscv_insts_aext.sail:263)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOMINU"),model/riscv_insts_aext.sail:264)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("amominu"),model/riscv_insts_aext.sail:264)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("AMOMAXU"),model/riscv_insts_aext.sail:265)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("amomaxu"),model/riscv_insts_aext.sail:265)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_aext.sail:268),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("AMO"),model/riscv_insts_aext.sail:268),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_aext.sail:268)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:268)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7851#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:268)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7852#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_aext.sail:268)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:268)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:268)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:268)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_app(Id_aux(Id("amo_mnemonic"),model/riscv_insts_aext.sail:269),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_aext.sail:269)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:256)),model/riscv_insts_aext.sail:256)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_lit(L_aux(L_string("."),model/riscv_insts_aext.sail:269)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("size_mnemonic"),model/riscv_insts_aext.sail:269),[(MP_aux(MP_id(Id_aux(Id("width"),model/riscv_insts_aext.sail:269)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:349)),model/riscv_types.sail:349)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("maybe_aq"),model/riscv_insts_aext.sail:269),[(MP_aux(MP_id(Id_aux(Id("aq"),model/riscv_insts_aext.sail:269)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7853#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("maybe_rl"),model/riscv_insts_aext.sail:269),[(MP_aux(MP_id(Id_aux(Id("rl"),model/riscv_insts_aext.sail:269)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex7854#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_aext.sail:269),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_aext.sail:269)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_aext.sail:269),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_aext.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_aext.sail:269),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_aext.sail:269)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_aext.sail:269),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_aext.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_aext.sail:269),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_aext.sail:269)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_lit(L_aux(L_string("("),model/riscv_insts_aext.sail:269)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_aext.sail:269),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_aext.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_lit(L_aux(L_string(")"),model/riscv_insts_aext.sail:269)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:10),Tu_aux(Tu_ty_id(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_cext.sail:10)),model/riscv_insts_cext.sail:10),Id_aux(Id("C_NOP"),model/riscv_insts_cext.sail:10)),model/riscv_insts_cext.sail:10)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:12),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_NOP"),model/riscv_insts_cext.sail:12),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:12)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_cext.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_cext.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_cext.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:15),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_NOP"),model/riscv_insts_cext.sail:15),[(P_aux(P_lit(L_aux(L_unit,model/riscv_insts_cext.sail:15)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_cext.sail:15)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:17),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_NOP"),model/riscv_insts_cext.sail:17),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:17)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("c.nop"),model/riscv_insts_cext.sail:17)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:21),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:21)),model/riscv_insts_cext.sail:21));(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:21),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:21)),model/riscv_insts_cext.sail:21))]),model/riscv_insts_cext.sail:21))]),model/riscv_insts_cext.sail:21),Id_aux(Id("C_ADDI4SPN"),model/riscv_insts_cext.sail:21)),model/riscv_insts_cext.sail:21)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:23),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_ADDI4SPN"),model/riscv_insts_cext.sail:23),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nz96"),model/riscv_insts_cext.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:25),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:25)),model/riscv_insts_cext.sail:25))]),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nz54"),model/riscv_insts_cext.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:25),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:25)),model/riscv_insts_cext.sail:25))]),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nz3"),model/riscv_insts_cext.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:25),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),model/riscv_insts_cext.sail:25))]),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nz2"),model/riscv_insts_cext.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:25),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),model/riscv_insts_cext.sail:25))]),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nz96"),model/riscv_insts_cext.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nz54"),model/riscv_insts_cext.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nz3"),model/riscv_insts_cext.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("nz2"),model/riscv_insts_cext.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25),Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:25),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25),Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:25),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:25),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25),Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000000"),model/riscv_insts_cext.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nz54"),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:25),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:25)),model/riscv_insts_cext.sail:25))]),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nz96"),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:25),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:25)),model/riscv_insts_cext.sail:25))]),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nz2"),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:25),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),model/riscv_insts_cext.sail:25))]),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nz3"),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:25),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),model/riscv_insts_cext.sail:25))]),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:25)),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nz96"),model/riscv_insts_cext.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nz54"),model/riscv_insts_cext.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nz3"),model/riscv_insts_cext.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("nz2"),model/riscv_insts_cext.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25),Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:25),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25),Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:25),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:25),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25),Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:25)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000000"),model/riscv_insts_cext.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:28),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_ADDI4SPN"),model/riscv_insts_cext.sail:28),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rdc"),model/riscv_insts_cext.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("nzimm"),model/riscv_insts_cext.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:21)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:29),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:29)),model/riscv_insts_cext.sail:29))]),model/riscv_insts_cext.sail:29),P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:29)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:29)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzimm"),model/riscv_insts_cext.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:21),Nexp_aux(Nexp_constant(2),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(2),Unknown),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:21),Nexp_aux(Nexp_constant(2),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:30)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:30),[(E_aux(E_id(Id_aux(Id("rdc"),model/riscv_insts_cext.sail:30)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:31),[(E_aux(E_app(Id_aux(Id("ITYPE"),model/riscv_insts_cext.sail:31),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:29)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("sp"),model/riscv_insts_cext.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_ADDI"),model/riscv_insts_cext.sail:31)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151))]),model/riscv_insts_base.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:151),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:34),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_ADDI4SPN"),model/riscv_insts_cext.sail:34),[(MP_aux(MP_id(Id_aux(Id("rdc"),model/riscv_insts_cext.sail:34)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("nzimm"),model/riscv_insts_cext.sail:34)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("nzimm"),model/riscv_insts_cext.sail:35)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000000"),model/riscv_insts_cext.sail:35)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.addi4spn"),model/riscv_insts_cext.sail:36)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:36),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:36)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:36),[(MP_aux(MP_id(Id_aux(Id("rdc"),model/riscv_insts_cext.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:36),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:36)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_10"),model/riscv_insts_cext.sail:36),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzimm"),model/riscv_insts_cext.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(10),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("nzimm"),model/riscv_insts_cext.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000000"),model/riscv_insts_cext.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:40),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:40),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:40)),model/riscv_insts_cext.sail:40))]),model/riscv_insts_cext.sail:40));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:40)),model/riscv_insts_cext.sail:40));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:40)),model/riscv_insts_cext.sail:40))]),model/riscv_insts_cext.sail:40),Id_aux(Id("C_LW"),model/riscv_insts_cext.sail:40)),model/riscv_insts_cext.sail:40)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:42),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_LW"),model/riscv_insts_cext.sail:42),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui6"),model/riscv_insts_cext.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:43)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:43),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:43)),model/riscv_insts_cext.sail:43))]),model/riscv_insts_cext.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:43)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui53"),model/riscv_insts_cext.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:43)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:43),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:43)),model/riscv_insts_cext.sail:43))]),model/riscv_insts_cext.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:43)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui2"),model/riscv_insts_cext.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:43)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:43),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:43)),model/riscv_insts_cext.sail:43))]),model/riscv_insts_cext.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:43)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("010"),model/riscv_insts_cext.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui53"),model/riscv_insts_cext.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:43)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:43),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:43)),model/riscv_insts_cext.sail:43))]),model/riscv_insts_cext.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:43)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:43)),model/riscv_insts_cext.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui2"),model/riscv_insts_cext.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:43)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:43),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:43)),model/riscv_insts_cext.sail:43))]),model/riscv_insts_cext.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:43)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui6"),model/riscv_insts_cext.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:43)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:43),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:43)),model/riscv_insts_cext.sail:43))]),model/riscv_insts_cext.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:43)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:43)),model/riscv_insts_cext.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:45),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_LW"),model/riscv_insts_cext.sail:45),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rsc"),model/riscv_insts_cext.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rdc"),model/riscv_insts_cext.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:40)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:46),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:46)),model/riscv_insts_cext.sail:46))]),model/riscv_insts_cext.sail:46),P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:46)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:46)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:46)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_cext.sail:46),[(E_aux(E_lit(L_aux(L_num(12),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:46)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:46)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:40),Nexp_aux(Nexp_constant(2),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:46)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:47)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:47),[(E_aux(E_id(Id_aux(Id("rdc"),model/riscv_insts_cext.sail:47)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:48)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:48),[(E_aux(E_id(Id_aux(Id("rsc"),model/riscv_insts_cext.sail:48)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:49),[(E_aux(E_app(Id_aux(Id("LOAD"),model/riscv_insts_cext.sail:49),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:46)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:49)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("WORD"),model/riscv_insts_cext.sail:49)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:49)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:49)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:288)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288))]),model/riscv_insts_base.sail:288)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:288),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:52),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_LW"),model/riscv_insts_cext.sail:52),[(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rsc"),model/riscv_insts_cext.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rdc"),model/riscv_insts_cext.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.lw"),model/riscv_insts_cext.sail:53)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:53),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:53)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:53),[(MP_aux(MP_id(Id_aux(Id("rdc"),model/riscv_insts_cext.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:53),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:53)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:53),[(MP_aux(MP_id(Id_aux(Id("rsc"),model/riscv_insts_cext.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:53),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:53)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_7"),model/riscv_insts_cext.sail:53),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:56),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:56),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:56)),model/riscv_insts_cext.sail:56))]),model/riscv_insts_cext.sail:56));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:56)),model/riscv_insts_cext.sail:56));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:56)),model/riscv_insts_cext.sail:56))]),model/riscv_insts_cext.sail:56),Id_aux(Id("C_LD"),model/riscv_insts_cext.sail:56)),model/riscv_insts_cext.sail:56)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:58),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_LD"),model/riscv_insts_cext.sail:58),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui76"),model/riscv_insts_cext.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:60)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:60)),model/riscv_insts_cext.sail:60))]),model/riscv_insts_cext.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:60)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui53"),model/riscv_insts_cext.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:60)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:60)),model/riscv_insts_cext.sail:60))]),model/riscv_insts_cext.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:60)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:59)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("011"),model/riscv_insts_cext.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui53"),model/riscv_insts_cext.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:60)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:60)),model/riscv_insts_cext.sail:60))]),model/riscv_insts_cext.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:60)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:60)),model/riscv_insts_cext.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui76"),model/riscv_insts_cext.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:60)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:60),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:60)),model/riscv_insts_cext.sail:60))]),model/riscv_insts_cext.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:60)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:60)),model/riscv_insts_cext.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:63),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_LD"),model/riscv_insts_cext.sail:63),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:63)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:56)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rsc"),model/riscv_insts_cext.sail:63)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rdc"),model/riscv_insts_cext.sail:63)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:56)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:56)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:64),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:64)),model/riscv_insts_cext.sail:64))]),model/riscv_insts_cext.sail:64),P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:64)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:64)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:64)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_cext.sail:64),[(E_aux(E_lit(L_aux(L_num(12),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:64)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:56)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000"),model/riscv_insts_cext.sail:64)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:56),Nexp_aux(Nexp_constant(3),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:64)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:65)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:65),[(E_aux(E_id(Id_aux(Id("rdc"),model/riscv_insts_cext.sail:65)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:66)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:66),[(E_aux(E_id(Id_aux(Id("rsc"),model/riscv_insts_cext.sail:66)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:67),[(E_aux(E_app(Id_aux(Id("LOAD"),model/riscv_insts_cext.sail:67),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:67)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:64)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:67)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:67)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:67)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("DOUBLE"),model/riscv_insts_cext.sail:67)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:67)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:67)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:288)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288))]),model/riscv_insts_base.sail:288)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:288),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:70),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_LD"),model/riscv_insts_cext.sail:70),[(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:70)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:56)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rsc"),model/riscv_insts_cext.sail:70)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rdc"),model/riscv_insts_cext.sail:70)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:71)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.ld"),model/riscv_insts_cext.sail:72)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:72),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:72)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:72),[(MP_aux(MP_id(Id_aux(Id("rdc"),model/riscv_insts_cext.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:72),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:72)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:72),[(MP_aux(MP_id(Id_aux(Id("rsc"),model/riscv_insts_cext.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:72),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:72)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_8"),model/riscv_insts_cext.sail:72),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:56)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:56)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:56)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_cext.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:73)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:76),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:76),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:76)),model/riscv_insts_cext.sail:76))]),model/riscv_insts_cext.sail:76));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:76)),model/riscv_insts_cext.sail:76));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:76)),model/riscv_insts_cext.sail:76))]),model/riscv_insts_cext.sail:76),Id_aux(Id("C_SW"),model/riscv_insts_cext.sail:76)),model/riscv_insts_cext.sail:76)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:78),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_SW"),model/riscv_insts_cext.sail:78),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui6"),model/riscv_insts_cext.sail:78)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:79),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:79)),model/riscv_insts_cext.sail:79))]),model/riscv_insts_cext.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui53"),model/riscv_insts_cext.sail:78)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:79),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:79)),model/riscv_insts_cext.sail:79))]),model/riscv_insts_cext.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui2"),model/riscv_insts_cext.sail:78)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:79),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:79)),model/riscv_insts_cext.sail:79))]),model/riscv_insts_cext.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:78)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:78)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("110"),model/riscv_insts_cext.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui53"),model/riscv_insts_cext.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:79),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:79)),model/riscv_insts_cext.sail:79))]),model/riscv_insts_cext.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:79)),model/riscv_insts_cext.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui2"),model/riscv_insts_cext.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:79),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:79)),model/riscv_insts_cext.sail:79))]),model/riscv_insts_cext.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui6"),model/riscv_insts_cext.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:79),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:79)),model/riscv_insts_cext.sail:79))]),model/riscv_insts_cext.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:79)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:79)),model/riscv_insts_cext.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:81),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_SW"),model/riscv_insts_cext.sail:81),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:81)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rsc1"),model/riscv_insts_cext.sail:81)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rsc2"),model/riscv_insts_cext.sail:81)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:76)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:82)),model/riscv_insts_cext.sail:82))]),model/riscv_insts_cext.sail:82),P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:82)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:82)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:82)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_cext.sail:82),[(E_aux(E_lit(L_aux(L_num(12),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:82)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:82)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:76),Nexp_aux(Nexp_constant(2),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:82)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:83)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:83),[(E_aux(E_id(Id_aux(Id("rsc1"),model/riscv_insts_cext.sail:83)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:84),[(E_aux(E_id(Id_aux(Id("rsc2"),model/riscv_insts_cext.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:85),[(E_aux(E_app(Id_aux(Id("STORE"),model/riscv_insts_cext.sail:85),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:85)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:82)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:85)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:85)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("WORD"),model/riscv_insts_cext.sail:85)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:85)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:85)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:365)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365))]),model/riscv_insts_base.sail:365)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:365),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:88),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_SW"),model/riscv_insts_cext.sail:88),[(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:88)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rsc1"),model/riscv_insts_cext.sail:88)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rsc2"),model/riscv_insts_cext.sail:88)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.sw"),model/riscv_insts_cext.sail:89)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:89),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:89)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:89),[(MP_aux(MP_id(Id_aux(Id("rsc1"),model/riscv_insts_cext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:89),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:89)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:89),[(MP_aux(MP_id(Id_aux(Id("rsc2"),model/riscv_insts_cext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:89),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:89)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_7"),model/riscv_insts_cext.sail:89),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:76)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:92),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:92),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:92)),model/riscv_insts_cext.sail:92))]),model/riscv_insts_cext.sail:92));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:92)),model/riscv_insts_cext.sail:92));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:92)),model/riscv_insts_cext.sail:92))]),model/riscv_insts_cext.sail:92),Id_aux(Id("C_SD"),model/riscv_insts_cext.sail:92)),model/riscv_insts_cext.sail:92)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:94),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_SD"),model/riscv_insts_cext.sail:94),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui76"),model/riscv_insts_cext.sail:94)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:96),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:96)),model/riscv_insts_cext.sail:96))]),model/riscv_insts_cext.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui53"),model/riscv_insts_cext.sail:94)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:96),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:96)),model/riscv_insts_cext.sail:96))]),model/riscv_insts_cext.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:94)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:94)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:95)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("111"),model/riscv_insts_cext.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui53"),model/riscv_insts_cext.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:96),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:96)),model/riscv_insts_cext.sail:96))]),model/riscv_insts_cext.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:96),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:96)),model/riscv_insts_cext.sail:96))]),model/riscv_insts_cext.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui76"),model/riscv_insts_cext.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:96),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:96)),model/riscv_insts_cext.sail:96))]),model/riscv_insts_cext.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:96),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:96)),model/riscv_insts_cext.sail:96))]),model/riscv_insts_cext.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:96)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:96)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:97)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:99),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_SD"),model/riscv_insts_cext.sail:99),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:99)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rsc1"),model/riscv_insts_cext.sail:99)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rsc2"),model/riscv_insts_cext.sail:99)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:92)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:100),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:100)),model/riscv_insts_cext.sail:100))]),model/riscv_insts_cext.sail:100),P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:100)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:100)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:100)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_cext.sail:100),[(E_aux(E_lit(L_aux(L_num(12),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:100)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000"),model/riscv_insts_cext.sail:100)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:92),Nexp_aux(Nexp_constant(3),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:100)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:101)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:101),[(E_aux(E_id(Id_aux(Id("rsc1"),model/riscv_insts_cext.sail:101)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:102)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:102),[(E_aux(E_id(Id_aux(Id("rsc2"),model/riscv_insts_cext.sail:102)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:103),[(E_aux(E_app(Id_aux(Id("STORE"),model/riscv_insts_cext.sail:103),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:103)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:100)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:103)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:103)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("DOUBLE"),model/riscv_insts_cext.sail:103)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:103)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:103)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:365)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365))]),model/riscv_insts_base.sail:365)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:365),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:106),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_SD"),model/riscv_insts_cext.sail:106),[(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rsc1"),model/riscv_insts_cext.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rsc2"),model/riscv_insts_cext.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:107)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.sd"),model/riscv_insts_cext.sail:108)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:108),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:108)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:108),[(MP_aux(MP_id(Id_aux(Id("rsc1"),model/riscv_insts_cext.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:108),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:108)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:108),[(MP_aux(MP_id(Id_aux(Id("rsc2"),model/riscv_insts_cext.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:108),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:108)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_8"),model/riscv_insts_cext.sail:108),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_cext.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:109)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:112),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:112),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:112)),model/riscv_insts_cext.sail:112))]),model/riscv_insts_cext.sail:112));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:112)),model/riscv_insts_cext.sail:112))]),model/riscv_insts_cext.sail:112),Id_aux(Id("C_ADDI"),model/riscv_insts_cext.sail:112)),model/riscv_insts_cext.sail:112)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:114),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_ADDI"),model/riscv_insts_cext.sail:114),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzi5"),model/riscv_insts_cext.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:116),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:116)),model/riscv_insts_cext.sail:116))]),model/riscv_insts_cext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzi40"),model/riscv_insts_cext.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:116),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:116)),model/riscv_insts_cext.sail:116))]),model/riscv_insts_cext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzi5"),model/riscv_insts_cext.sail:115)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("nzi40"),model/riscv_insts_cext.sail:115)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:116),Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:116)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:115)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:115)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:115)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_cext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzi5"),model/riscv_insts_cext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:116),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:116)),model/riscv_insts_cext.sail:116))]),model/riscv_insts_cext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:116)),model/riscv_insts_cext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzi40"),model/riscv_insts_cext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:116),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:116)),model/riscv_insts_cext.sail:116))]),model/riscv_insts_cext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzi5"),model/riscv_insts_cext.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("nzi40"),model/riscv_insts_cext.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:116)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:116),Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:116)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:119),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_ADDI"),model/riscv_insts_cext.sail:119),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("nzi"),model/riscv_insts_cext.sail:119)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:112)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:119)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:112)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:112)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:120),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:120)),model/riscv_insts_cext.sail:120))]),model/riscv_insts_cext.sail:120),P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:120)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:120)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_cext.sail:120),[(E_aux(E_lit(L_aux(L_num(12),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("nzi"),model/riscv_insts_cext.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:112)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:120)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:121),[(E_aux(E_app(Id_aux(Id("ITYPE"),model/riscv_insts_cext.sail:121),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:121)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:120)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:121)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:121)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_ADDI"),model/riscv_insts_cext.sail:121)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151))]),model/riscv_insts_base.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:151),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:124),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_ADDI"),model/riscv_insts_cext.sail:124),[(MP_aux(MP_id(Id_aux(Id("nzi"),model/riscv_insts_cext.sail:124)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:112)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:124)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("nzi"),model/riscv_insts_cext.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:112)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.addi"),model/riscv_insts_cext.sail:126)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:126),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:126)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_cext.sail:126),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:126)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:126),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:126)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_6"),model/riscv_insts_cext.sail:126),[(MP_aux(MP_id(Id_aux(Id("nzi"),model/riscv_insts_cext.sail:126)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("nzi"),model/riscv_insts_cext.sail:127)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:127)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:127)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:127)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:130),Tu_aux(Tu_ty_id(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:130),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/riscv_insts_cext.sail:130)),model/riscv_insts_cext.sail:130))]),model/riscv_insts_cext.sail:130),Id_aux(Id("C_JAL"),model/riscv_insts_cext.sail:130)),model/riscv_insts_cext.sail:130)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:132),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_JAL"),model/riscv_insts_cext.sail:132),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i11"),model/riscv_insts_cext.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i10"),model/riscv_insts_cext.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i98"),model/riscv_insts_cext.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i7"),model/riscv_insts_cext.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i6"),model/riscv_insts_cext.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i5"),model/riscv_insts_cext.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i4"),model/riscv_insts_cext.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i31"),model/riscv_insts_cext.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_cext.sail:133)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("001"),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i11"),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i4"),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i98"),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i10"),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i6"),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i7"),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i31"),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i5"),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:134),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),model/riscv_insts_cext.sail:134))]),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:134)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_cext.sail:135)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:137),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_JAL"),model/riscv_insts_cext.sail:137),[(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:137)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/riscv_insts_cext.sail:130)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:138),[(E_aux(E_app(Id_aux(Id("RISCV_JAL"),model/riscv_insts_cext.sail:138),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_cext.sail:138),[(E_aux(E_lit(L_aux(L_num(21),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/riscv_insts_cext.sail:130)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(11),model/riscv_insts_cext.sail:130),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/riscv_insts_base.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ra"),model/riscv_insts_cext.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/riscv_insts_base.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:35)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:35),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:140),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_JAL"),model/riscv_insts_cext.sail:140),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:140)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/riscv_insts_cext.sail:130)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_cext.sail:141)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.jal"),model/riscv_insts_cext.sail:142)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:142),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:142)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_12"),model/riscv_insts_cext.sail:142),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:142)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/riscv_insts_cext.sail:130)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/riscv_insts_cext.sail:130)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/riscv_insts_cext.sail:130)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:142)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_cext.sail:143)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:146),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:146),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:146)),model/riscv_insts_cext.sail:146))]),model/riscv_insts_cext.sail:146));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:146)),model/riscv_insts_cext.sail:146))]),model/riscv_insts_cext.sail:146),Id_aux(Id("C_ADDIW"),model/riscv_insts_cext.sail:146)),model/riscv_insts_cext.sail:146)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:148),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_ADDIW"),model/riscv_insts_cext.sail:148),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm5"),model/riscv_insts_cext.sail:148)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:150),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:150)),model/riscv_insts_cext.sail:150))]),model/riscv_insts_cext.sail:150)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm40"),model/riscv_insts_cext.sail:148)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:150),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:150)),model/riscv_insts_cext.sail:150))]),model/riscv_insts_cext.sail:150)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:148)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:149)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:149)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:149)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex8620#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex8620#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("001"),model/riscv_insts_cext.sail:150)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm5"),model/riscv_insts_cext.sail:150)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:150),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:150)),model/riscv_insts_cext.sail:150))]),model/riscv_insts_cext.sail:150)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:150)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:150)),model/riscv_insts_cext.sail:150)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm40"),model/riscv_insts_cext.sail:150)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:150),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:150)),model/riscv_insts_cext.sail:150))]),model/riscv_insts_cext.sail:150)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:150)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:150)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:151)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:151)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:151)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex8644#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex8644#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:153),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_ADDIW"),model/riscv_insts_cext.sail:153),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:153)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:146)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:153)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:146)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:146)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:154),[(E_aux(E_app(Id_aux(Id("ADDIW"),model/riscv_insts_cext.sail:154),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_cext.sail:154),[(E_aux(E_lit(L_aux(L_num(12),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:154)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:146)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:154)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:154)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:416)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:416),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:156),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_ADDIW"),model/riscv_insts_cext.sail:156),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:156)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:146)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:156)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:157)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.addiw"),model/riscv_insts_cext.sail:158)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:158),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:158)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_cext.sail:158),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:158)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:158),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:158)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_6"),model/riscv_insts_cext.sail:158),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:158)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:159)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:162),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:162),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:162)),model/riscv_insts_cext.sail:162))]),model/riscv_insts_cext.sail:162));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:162)),model/riscv_insts_cext.sail:162))]),model/riscv_insts_cext.sail:162),Id_aux(Id("C_LI"),model/riscv_insts_cext.sail:162)),model/riscv_insts_cext.sail:162)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:164),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_LI"),model/riscv_insts_cext.sail:164),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm5"),model/riscv_insts_cext.sail:164)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:166)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:166),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:166)),model/riscv_insts_cext.sail:166))]),model/riscv_insts_cext.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:166)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm40"),model/riscv_insts_cext.sail:164)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:166)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:166),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:166)),model/riscv_insts_cext.sail:166))]),model/riscv_insts_cext.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:166)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:164)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("010"),model/riscv_insts_cext.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm5"),model/riscv_insts_cext.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:166)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:166),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:166)),model/riscv_insts_cext.sail:166))]),model/riscv_insts_cext.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:166)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:166)),model/riscv_insts_cext.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm40"),model/riscv_insts_cext.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:166)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:166),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:166)),model/riscv_insts_cext.sail:166))]),model/riscv_insts_cext.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:166)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:167)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:167)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:169),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_LI"),model/riscv_insts_cext.sail:169),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:169)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:162)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:169)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:162)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:162)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:170),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:170)),model/riscv_insts_cext.sail:170))]),model/riscv_insts_cext.sail:170),P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:170)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:170)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:170)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_cext.sail:170),[(E_aux(E_lit(L_aux(L_num(12),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:170)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:162)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:170)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:171),[(E_aux(E_app(Id_aux(Id("ITYPE"),model/riscv_insts_cext.sail:171),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:171)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:170)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:171)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:171)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_ADDI"),model/riscv_insts_cext.sail:171)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151))]),model/riscv_insts_base.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:151),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:174),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_LI"),model/riscv_insts_cext.sail:174),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:162)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:175)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:175)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.li"),model/riscv_insts_cext.sail:176)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:176),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:176)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_cext.sail:176),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:176)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:176),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:176)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_6"),model/riscv_insts_cext.sail:176),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:176)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:177)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:177)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:180),Tu_aux(Tu_ty_id(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:180),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:180)),model/riscv_insts_cext.sail:180))]),model/riscv_insts_cext.sail:180),Id_aux(Id("C_ADDI16SP"),model/riscv_insts_cext.sail:180)),model/riscv_insts_cext.sail:180)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:182),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_ADDI16SP"),model/riscv_insts_cext.sail:182),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzi9"),model/riscv_insts_cext.sail:182)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:184),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),model/riscv_insts_cext.sail:184))]),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzi87"),model/riscv_insts_cext.sail:182)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:184),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:184)),model/riscv_insts_cext.sail:184))]),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzi6"),model/riscv_insts_cext.sail:182)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:184),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),model/riscv_insts_cext.sail:184))]),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzi5"),model/riscv_insts_cext.sail:182)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:184),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),model/riscv_insts_cext.sail:184))]),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzi4"),model/riscv_insts_cext.sail:182)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:184),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),model/riscv_insts_cext.sail:184))]),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzi9"),model/riscv_insts_cext.sail:183)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzi87"),model/riscv_insts_cext.sail:183)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzi6"),model/riscv_insts_cext.sail:183)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzi5"),model/riscv_insts_cext.sail:183)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("nzi4"),model/riscv_insts_cext.sail:183)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:183)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("011"),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzi9"),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:184),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),model/riscv_insts_cext.sail:184))]),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00010"),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzi4"),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:184),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),model/riscv_insts_cext.sail:184))]),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzi6"),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:184),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),model/riscv_insts_cext.sail:184))]),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzi87"),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:184),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:184)),model/riscv_insts_cext.sail:184))]),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzi5"),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:184),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),model/riscv_insts_cext.sail:184))]),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:184)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzi9"),model/riscv_insts_cext.sail:185)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzi87"),model/riscv_insts_cext.sail:185)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzi6"),model/riscv_insts_cext.sail:185)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzi5"),model/riscv_insts_cext.sail:185)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("nzi4"),model/riscv_insts_cext.sail:185)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184),Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:184)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:185)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:187),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_ADDI16SP"),model/riscv_insts_cext.sail:187),[(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:187)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:180)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:188),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:188)),model/riscv_insts_cext.sail:188))]),model/riscv_insts_cext.sail:188),P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:188)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:188)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:188)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_cext.sail:188),[(E_aux(E_lit(L_aux(L_num(12),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:188)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:180)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_hex("0"),model/riscv_insts_cext.sail:188)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:180),Nexp_aux(Nexp_constant(4),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:188)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:189),[(E_aux(E_app(Id_aux(Id("ITYPE"),model/riscv_insts_cext.sail:189),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:189)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:188)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("sp"),model/riscv_insts_cext.sail:189)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("sp"),model/riscv_insts_cext.sail:189)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_ADDI"),model/riscv_insts_cext.sail:189)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151))]),model/riscv_insts_base.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:151),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:192),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_ADDI16SP"),model/riscv_insts_cext.sail:192),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:192)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:180)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:193)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:180)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:193)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.addi16sp"),model/riscv_insts_cext.sail:194)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:194),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:194)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_6"),model/riscv_insts_cext.sail:194),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:194)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:195)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:195)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:198),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:198),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:198)),model/riscv_insts_cext.sail:198))]),model/riscv_insts_cext.sail:198));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:198)),model/riscv_insts_cext.sail:198))]),model/riscv_insts_cext.sail:198),Id_aux(Id("C_LUI"),model/riscv_insts_cext.sail:198)),model/riscv_insts_cext.sail:198)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:200),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_LUI"),model/riscv_insts_cext.sail:200),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm17"),model/riscv_insts_cext.sail:200)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:202)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:202),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:202)),model/riscv_insts_cext.sail:202))]),model/riscv_insts_cext.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:202)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm1612"),model/riscv_insts_cext.sail:200)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:202)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:202),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:202)),model/riscv_insts_cext.sail:202))]),model/riscv_insts_cext.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:202)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:200)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("sp"),model/riscv_insts_cext.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("imm17"),model/riscv_insts_cext.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:202)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("imm1612"),model/riscv_insts_cext.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:202)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:202),Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:202)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:201)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("011"),model/riscv_insts_cext.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm17"),model/riscv_insts_cext.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:202)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:202),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:202)),model/riscv_insts_cext.sail:202))]),model/riscv_insts_cext.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:202)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:202)),model/riscv_insts_cext.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("imm1612"),model/riscv_insts_cext.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:202)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:202),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:202)),model/riscv_insts_cext.sail:202))]),model/riscv_insts_cext.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:202)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("sp"),model/riscv_insts_cext.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("imm17"),model/riscv_insts_cext.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:202)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("imm1612"),model/riscv_insts_cext.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:202)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:202),Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:202)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:205),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_LUI"),model/riscv_insts_cext.sail:205),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:205)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:198)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:205)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:198)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:198)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:206),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_cext.sail:206)),model/riscv_insts_cext.sail:206))]),model/riscv_insts_cext.sail:206),P_aux(P_id(Id_aux(Id("res"),model/riscv_insts_cext.sail:206)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_cext.sail:206)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_cext.sail:206)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_cext.sail:206),[(E_aux(E_lit(L_aux(L_num(20),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:206)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:198)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_cext.sail:206)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:207),[(E_aux(E_app(Id_aux(Id("UTYPE"),model/riscv_insts_cext.sail:207),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("res"),model/riscv_insts_cext.sail:207)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_cext.sail:206)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:207)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_LUI"),model/riscv_insts_cext.sail:207)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_types.sail:309)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_base.sail:6)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:6)),model/riscv_insts_base.sail:6))]),model/riscv_insts_base.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:6),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:210),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_LUI"),model/riscv_insts_cext.sail:210),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:210)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:198)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:210)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("sp"),model/riscv_insts_cext.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:198)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.lui"),model/riscv_insts_cext.sail:212)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:212),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:212)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_cext.sail:212),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:212)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:212),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:212)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_6"),model/riscv_insts_cext.sail:212),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:212)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:213)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:213)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:213)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("sp"),model/riscv_insts_cext.sail:213)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:213)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:213)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:216),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:216),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:216)),model/riscv_insts_cext.sail:216))]),model/riscv_insts_cext.sail:216));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:216)),model/riscv_insts_cext.sail:216))]),model/riscv_insts_cext.sail:216),Id_aux(Id("C_SRLI"),model/riscv_insts_cext.sail:216)),model/riscv_insts_cext.sail:216)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:218),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_SRLI"),model/riscv_insts_cext.sail:218),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzui5"),model/riscv_insts_cext.sail:218)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:220),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:220)),model/riscv_insts_cext.sail:220))]),model/riscv_insts_cext.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzui40"),model/riscv_insts_cext.sail:218)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:220),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:220)),model/riscv_insts_cext.sail:220))]),model/riscv_insts_cext.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:218)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzui5"),model/riscv_insts_cext.sail:219)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("nzui40"),model/riscv_insts_cext.sail:219)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:220),Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:220)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:219)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_cext.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzui5"),model/riscv_insts_cext.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:220),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:220)),model/riscv_insts_cext.sail:220))]),model/riscv_insts_cext.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:220)),model/riscv_insts_cext.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzui40"),model/riscv_insts_cext.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:220),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:220)),model/riscv_insts_cext.sail:220))]),model/riscv_insts_cext.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzui5"),model/riscv_insts_cext.sail:221)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("nzui40"),model/riscv_insts_cext.sail:221)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:220)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:220),Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:220)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:221)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:223),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_SRLI"),model/riscv_insts_cext.sail:223),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:223)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:216)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:223)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:216)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:216)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:224)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:224),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:224)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:225),[(E_aux(E_app(Id_aux(Id("SHIFTIOP"),model/riscv_insts_cext.sail:225),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:225)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:216)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:225)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:225)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_SRLI"),model/riscv_insts_cext.sail:225)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193))]),model/riscv_insts_base.sail:193)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:193),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:228),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_SRLI"),model/riscv_insts_cext.sail:228),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:228)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:216)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:228)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:229)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:216)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:229)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.srli"),model/riscv_insts_cext.sail:230)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:230),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:230)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:230),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:230)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:230),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:230)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_6"),model/riscv_insts_cext.sail:230),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:230)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:231)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:231)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:234),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:234),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:234)),model/riscv_insts_cext.sail:234))]),model/riscv_insts_cext.sail:234));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:234)),model/riscv_insts_cext.sail:234))]),model/riscv_insts_cext.sail:234),Id_aux(Id("C_SRAI"),model/riscv_insts_cext.sail:234)),model/riscv_insts_cext.sail:234)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:236),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_SRAI"),model/riscv_insts_cext.sail:236),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzui5"),model/riscv_insts_cext.sail:236)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:238)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:238),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:238)),model/riscv_insts_cext.sail:238))]),model/riscv_insts_cext.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:238)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzui40"),model/riscv_insts_cext.sail:236)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:238)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:238),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:238)),model/riscv_insts_cext.sail:238))]),model/riscv_insts_cext.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:238)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:236)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzui5"),model/riscv_insts_cext.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:238)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("nzui40"),model/riscv_insts_cext.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:238)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:238),Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:238)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:237)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_cext.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzui5"),model/riscv_insts_cext.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:238)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:238),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:238)),model/riscv_insts_cext.sail:238))]),model/riscv_insts_cext.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:238)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:238)),model/riscv_insts_cext.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzui40"),model/riscv_insts_cext.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:238)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:238),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:238)),model/riscv_insts_cext.sail:238))]),model/riscv_insts_cext.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:238)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzui5"),model/riscv_insts_cext.sail:239)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:238)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("nzui40"),model/riscv_insts_cext.sail:239)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:238)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:238),Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:238)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:239)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:241),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_SRAI"),model/riscv_insts_cext.sail:241),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:241)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:234)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:241)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:234)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:234)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:242)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:242),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:242)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:243),[(E_aux(E_app(Id_aux(Id("SHIFTIOP"),model/riscv_insts_cext.sail:243),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:243)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:234)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:243)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:243)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_SRAI"),model/riscv_insts_cext.sail:243)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193))]),model/riscv_insts_base.sail:193)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:193),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:246),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_SRAI"),model/riscv_insts_cext.sail:246),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:246)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:234)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:246)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:247)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:234)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:247)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.srai"),model/riscv_insts_cext.sail:248)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:248),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:248)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:248),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:248)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:248),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:248)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_6"),model/riscv_insts_cext.sail:248),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:248)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:249)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:249)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:252),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:252),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:252)),model/riscv_insts_cext.sail:252))]),model/riscv_insts_cext.sail:252));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:252)),model/riscv_insts_cext.sail:252))]),model/riscv_insts_cext.sail:252),Id_aux(Id("C_ANDI"),model/riscv_insts_cext.sail:252)),model/riscv_insts_cext.sail:252)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:254),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_ANDI"),model/riscv_insts_cext.sail:254),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i5"),model/riscv_insts_cext.sail:254)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:255)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:255),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:255)),model/riscv_insts_cext.sail:255))]),model/riscv_insts_cext.sail:255)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:255)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i40"),model/riscv_insts_cext.sail:254)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:255)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:255),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:255)),model/riscv_insts_cext.sail:255))]),model/riscv_insts_cext.sail:255)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:255)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:254)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_cext.sail:255)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i5"),model/riscv_insts_cext.sail:255)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:255)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:255),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:255)),model/riscv_insts_cext.sail:255))]),model/riscv_insts_cext.sail:255)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:255)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_insts_cext.sail:255)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:255)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:255)),model/riscv_insts_cext.sail:255)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i40"),model/riscv_insts_cext.sail:255)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:255)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:255),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:255)),model/riscv_insts_cext.sail:255))]),model/riscv_insts_cext.sail:255)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:255)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:255)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:257),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_ANDI"),model/riscv_insts_cext.sail:257),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:257)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:252)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:257)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:252)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:252)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:258)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:258),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:258)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:259),[(E_aux(E_app(Id_aux(Id("ITYPE"),model/riscv_insts_cext.sail:259),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_cext.sail:259),[(E_aux(E_lit(L_aux(L_num(12),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:259)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:252)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:259)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:259)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_ANDI"),model/riscv_insts_cext.sail:259)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_types.sail:312)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151))]),model/riscv_insts_base.sail:151)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:151),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:262),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_ANDI"),model/riscv_insts_cext.sail:262),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:262)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:252)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:262)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.andi"),model/riscv_insts_cext.sail:263)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:263),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:263)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:263),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:263)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:263),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:263)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_6"),model/riscv_insts_cext.sail:263),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:263)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:266),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:266)),model/riscv_insts_cext.sail:266));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:266)),model/riscv_insts_cext.sail:266))]),model/riscv_insts_cext.sail:266),Id_aux(Id("C_SUB"),model/riscv_insts_cext.sail:266)),model/riscv_insts_cext.sail:266)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:268),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_SUB"),model/riscv_insts_cext.sail:268),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:268)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:268)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_cext.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("11"),model/riscv_insts_cext.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:269)),model/riscv_insts_cext.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:269)),model/riscv_insts_cext.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:271),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_SUB"),model/riscv_insts_cext.sail:271),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:271)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:271)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:266)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:272)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:272),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:272)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:273)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:273),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:273)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:274),[(E_aux(E_app(Id_aux(Id("RTYPE"),model/riscv_insts_cext.sail:274),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:274)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:274)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:274)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_SUB"),model/riscv_insts_cext.sail:274)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233))]),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:233),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:277),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_SUB"),model/riscv_insts_cext.sail:277),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:277)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:277)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.sub"),model/riscv_insts_cext.sail:278)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:278),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:278)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:278),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:278)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:278),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:278)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:278),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:278)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:281),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:281)),model/riscv_insts_cext.sail:281));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:281)),model/riscv_insts_cext.sail:281))]),model/riscv_insts_cext.sail:281),Id_aux(Id("C_XOR"),model/riscv_insts_cext.sail:281)),model/riscv_insts_cext.sail:281)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:283),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_XOR"),model/riscv_insts_cext.sail:283),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:283)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:283)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_cext.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("11"),model/riscv_insts_cext.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:284)),model/riscv_insts_cext.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:284)),model/riscv_insts_cext.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:286),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_XOR"),model/riscv_insts_cext.sail:286),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:286)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:286)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:281)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:287)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:287),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:287)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:288)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:288),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:288)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:289),[(E_aux(E_app(Id_aux(Id("RTYPE"),model/riscv_insts_cext.sail:289),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:289)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:289)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:289)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_XOR"),model/riscv_insts_cext.sail:289)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233))]),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:233),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:292),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_XOR"),model/riscv_insts_cext.sail:292),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:292)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:292)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.xor"),model/riscv_insts_cext.sail:293)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:293),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:293)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:293),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:293)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:293),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:293)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:293),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:293)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:296),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:296)),model/riscv_insts_cext.sail:296));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:296)),model/riscv_insts_cext.sail:296))]),model/riscv_insts_cext.sail:296),Id_aux(Id("C_OR"),model/riscv_insts_cext.sail:296)),model/riscv_insts_cext.sail:296)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:298),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_OR"),model/riscv_insts_cext.sail:298),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:298)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:298)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_cext.sail:299)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:299)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("11"),model/riscv_insts_cext.sail:299)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:299)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:299)),model/riscv_insts_cext.sail:299)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_insts_cext.sail:299)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:299)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:299)),model/riscv_insts_cext.sail:299)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:299)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:301),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_OR"),model/riscv_insts_cext.sail:301),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:301)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:301)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:296)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:302)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:302),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:302)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:303)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:303),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:303)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:304),[(E_aux(E_app(Id_aux(Id("RTYPE"),model/riscv_insts_cext.sail:304),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:304)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:304)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:304)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_OR"),model/riscv_insts_cext.sail:304)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233))]),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:233),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:307),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_OR"),model/riscv_insts_cext.sail:307),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:307)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:307)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.or"),model/riscv_insts_cext.sail:308)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:308),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:308)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:308),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:308)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:308),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:308)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:308),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:308)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:311),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:311)),model/riscv_insts_cext.sail:311));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:311)),model/riscv_insts_cext.sail:311))]),model/riscv_insts_cext.sail:311),Id_aux(Id("C_AND"),model/riscv_insts_cext.sail:311)),model/riscv_insts_cext.sail:311)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:313),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_AND"),model/riscv_insts_cext.sail:313),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:313)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:313)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_cext.sail:314)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:314)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("11"),model/riscv_insts_cext.sail:314)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:314)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:314)),model/riscv_insts_cext.sail:314)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("11"),model/riscv_insts_cext.sail:314)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:314)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:314)),model/riscv_insts_cext.sail:314)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:314)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:316),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_AND"),model/riscv_insts_cext.sail:316),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:316)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:316)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:311)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:317)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:317),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:317)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:318)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:318),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:318)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:319),[(E_aux(E_app(Id_aux(Id("RTYPE"),model/riscv_insts_cext.sail:319),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:319)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:319)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:319)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_AND"),model/riscv_insts_cext.sail:319)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233))]),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:233),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:322),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_AND"),model/riscv_insts_cext.sail:322),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:322)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:322)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.and"),model/riscv_insts_cext.sail:323)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:323),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:323)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:323),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:323)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:323),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:323)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:323),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:323)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:326),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:326)),model/riscv_insts_cext.sail:326));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:326)),model/riscv_insts_cext.sail:326))]),model/riscv_insts_cext.sail:326),Id_aux(Id("C_SUBW"),model/riscv_insts_cext.sail:326)),model/riscv_insts_cext.sail:326)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:328),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_SUBW"),model/riscv_insts_cext.sail:328),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:328)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:328)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:329)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_cext.sail:330)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("1"),model/riscv_insts_cext.sail:330)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("11"),model/riscv_insts_cext.sail:330)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:330)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:330)),model/riscv_insts_cext.sail:330)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:330)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:330)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:330)),model/riscv_insts_cext.sail:330)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:330)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:331)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:333),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_SUBW"),model/riscv_insts_cext.sail:333),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:333)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:333)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:326)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:334)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:334),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:334)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:335)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:335),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:335)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:336),[(E_aux(E_app(Id_aux(Id("RTYPEW"),model/riscv_insts_cext.sail:336),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:336)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:336)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:336)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_SUBW"),model/riscv_insts_cext.sail:336)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473))]),model/riscv_insts_base.sail:473)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:473),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:339),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_SUBW"),model/riscv_insts_cext.sail:339),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:339)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:339)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:340)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.subw"),model/riscv_insts_cext.sail:341)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:341),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:341)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:341),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:341)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:341),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:341)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:341),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:341)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:342)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:345),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:345)),model/riscv_insts_cext.sail:345));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:345)),model/riscv_insts_cext.sail:345))]),model/riscv_insts_cext.sail:345),Id_aux(Id("C_ADDW"),model/riscv_insts_cext.sail:345)),model/riscv_insts_cext.sail:345)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:347),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_ADDW"),model/riscv_insts_cext.sail:347),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:347)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:347)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:348)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_cext.sail:349)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("1"),model/riscv_insts_cext.sail:349)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("11"),model/riscv_insts_cext.sail:349)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:349)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:349)),model/riscv_insts_cext.sail:349)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:349)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:349)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:349)),model/riscv_insts_cext.sail:349)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:349)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:350)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:352),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_ADDW"),model/riscv_insts_cext.sail:352),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:352)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:352)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:345)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:353)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:353),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:353)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:354)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:354),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:354)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:355),[(E_aux(E_app(Id_aux(Id("RTYPEW"),model/riscv_insts_cext.sail:355),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:355)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:355)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:355)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_ADDW"),model/riscv_insts_cext.sail:355)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_types.sail:319)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473))]),model/riscv_insts_base.sail:473)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:473),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:358),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_ADDW"),model/riscv_insts_cext.sail:358),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:358)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:358)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:359)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.addw"),model/riscv_insts_cext.sail:360)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:360),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:360)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:360),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:360)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:360),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:360)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:360),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:360)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:361)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:364),Tu_aux(Tu_ty_id(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:364),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/riscv_insts_cext.sail:364)),model/riscv_insts_cext.sail:364))]),model/riscv_insts_cext.sail:364),Id_aux(Id("C_J"),model/riscv_insts_cext.sail:364)),model/riscv_insts_cext.sail:364)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:366),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_J"),model/riscv_insts_cext.sail:366),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i11"),model/riscv_insts_cext.sail:366)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i10"),model/riscv_insts_cext.sail:366)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i98"),model/riscv_insts_cext.sail:366)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i7"),model/riscv_insts_cext.sail:366)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i6"),model/riscv_insts_cext.sail:366)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i5"),model/riscv_insts_cext.sail:366)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i4"),model/riscv_insts_cext.sail:366)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i31"),model/riscv_insts_cext.sail:366)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("101"),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i11"),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i4"),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i98"),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i10"),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i6"),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i7"),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i31"),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i5"),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:367),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),model/riscv_insts_cext.sail:367))]),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:367)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:367)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:369),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_J"),model/riscv_insts_cext.sail:369),[(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:369)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/riscv_insts_cext.sail:364)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:370),[(E_aux(E_app(Id_aux(Id("RISCV_JAL"),model/riscv_insts_cext.sail:370),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_cext.sail:370),[(E_aux(E_lit(L_aux(L_num(21),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:370)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/riscv_insts_cext.sail:364)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:370)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(11),model/riscv_insts_cext.sail:364),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/riscv_insts_base.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:370)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/riscv_insts_base.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:35)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:35),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:372),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_J"),model/riscv_insts_cext.sail:372),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:372)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/riscv_insts_cext.sail:364)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.j"),model/riscv_insts_cext.sail:373)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:373),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:373)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_11"),model/riscv_insts_cext.sail:373),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:373)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(11),model/prelude_mapping.sail:224)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:376),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:376),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:376)),model/riscv_insts_cext.sail:376))]),model/riscv_insts_cext.sail:376));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:376)),model/riscv_insts_cext.sail:376))]),model/riscv_insts_cext.sail:376),Id_aux(Id("C_BEQZ"),model/riscv_insts_cext.sail:376)),model/riscv_insts_cext.sail:376)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:378),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_BEQZ"),model/riscv_insts_cext.sail:378),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i8"),model/riscv_insts_cext.sail:378)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:379),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:379)),model/riscv_insts_cext.sail:379))]),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i76"),model/riscv_insts_cext.sail:378)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:379),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),model/riscv_insts_cext.sail:379))]),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i5"),model/riscv_insts_cext.sail:378)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:379),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:379)),model/riscv_insts_cext.sail:379))]),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i43"),model/riscv_insts_cext.sail:378)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:379),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),model/riscv_insts_cext.sail:379))]),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i21"),model/riscv_insts_cext.sail:378)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:379),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),model/riscv_insts_cext.sail:379))]),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:378)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("110"),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i8"),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:379),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:379)),model/riscv_insts_cext.sail:379))]),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i43"),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:379),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),model/riscv_insts_cext.sail:379))]),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:379)),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i76"),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:379),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),model/riscv_insts_cext.sail:379))]),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i21"),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:379),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),model/riscv_insts_cext.sail:379))]),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i5"),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:379),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:379)),model/riscv_insts_cext.sail:379))]),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:379)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:379)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:381),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_BEQZ"),model/riscv_insts_cext.sail:381),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:381)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:381)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:376)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:382),[(E_aux(E_app(Id_aux(Id("BTYPE"),model/riscv_insts_cext.sail:382),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_cext.sail:382),[(E_aux(E_lit(L_aux(L_num(13),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:382)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:382)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:376),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/riscv_insts_base.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:382)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:382),[(E_aux(E_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:382)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_BEQ"),model/riscv_insts_cext.sail:382)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/riscv_insts_base.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92))]),model/riscv_insts_base.sail:92)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:92),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:384),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_BEQZ"),model/riscv_insts_cext.sail:384),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:384)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:376)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:384)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.beqz"),model/riscv_insts_cext.sail:385)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:385),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:385)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:385),[(MP_aux(MP_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:385)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:385),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:385)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_8"),model/riscv_insts_cext.sail:385),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:385)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:388),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:388),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:388)),model/riscv_insts_cext.sail:388))]),model/riscv_insts_cext.sail:388));(Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:388)),model/riscv_insts_cext.sail:388))]),model/riscv_insts_cext.sail:388),Id_aux(Id("C_BNEZ"),model/riscv_insts_cext.sail:388)),model/riscv_insts_cext.sail:388)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:390),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_BNEZ"),model/riscv_insts_cext.sail:390),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i8"),model/riscv_insts_cext.sail:390)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:391),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:391)),model/riscv_insts_cext.sail:391))]),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i76"),model/riscv_insts_cext.sail:390)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:391),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),model/riscv_insts_cext.sail:391))]),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i5"),model/riscv_insts_cext.sail:390)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:391),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:391)),model/riscv_insts_cext.sail:391))]),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i43"),model/riscv_insts_cext.sail:390)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:391),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),model/riscv_insts_cext.sail:391))]),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i21"),model/riscv_insts_cext.sail:390)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:391),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),model/riscv_insts_cext.sail:391))]),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:390)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("111"),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i8"),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:391),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:391)),model/riscv_insts_cext.sail:391))]),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i43"),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:391),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),model/riscv_insts_cext.sail:391))]),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("cregidx"),model/riscv_insts_cext.sail:391)),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i76"),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:391),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),model/riscv_insts_cext.sail:391))]),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i21"),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:391),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),model/riscv_insts_cext.sail:391))]),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("i5"),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:391),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:391)),model/riscv_insts_cext.sail:391))]),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_cext.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:393),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_BNEZ"),model/riscv_insts_cext.sail:393),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:393)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:388)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:393)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:388)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:388)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:394),[(E_aux(E_app(Id_aux(Id("BTYPE"),model/riscv_insts_cext.sail:394),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_cext.sail:394),[(E_aux(E_lit(L_aux(L_num(13),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:394)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:388)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:394)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:388),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/riscv_insts_base.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:394)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("creg2reg_idx"),model/riscv_insts_cext.sail:394),[(E_aux(E_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:394)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_BNE"),model/riscv_insts_cext.sail:394)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_types.sail:310)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/riscv_insts_base.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92))]),model/riscv_insts_base.sail:92)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:92),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:396),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_BNEZ"),model/riscv_insts_cext.sail:396),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:396)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_insts_cext.sail:388)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:396)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_types.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.bnez"),model/riscv_insts_cext.sail:397)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:397),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:397)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("creg_name"),model/riscv_insts_cext.sail:397),[(MP_aux(MP_id(Id_aux(Id("rs"),model/riscv_insts_cext.sail:397)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_regs.sail:231)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:397),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:397)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_8"),model/riscv_insts_cext.sail:397),[(MP_aux(MP_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:397)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/prelude_mapping.sail:167)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:400),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:400),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:400)),model/riscv_insts_cext.sail:400))]),model/riscv_insts_cext.sail:400));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:400)),model/riscv_insts_cext.sail:400))]),model/riscv_insts_cext.sail:400),Id_aux(Id("C_SLLI"),model/riscv_insts_cext.sail:400)),model/riscv_insts_cext.sail:400)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:402),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_SLLI"),model/riscv_insts_cext.sail:402),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzui5"),model/riscv_insts_cext.sail:402)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:404),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:404)),model/riscv_insts_cext.sail:404))]),model/riscv_insts_cext.sail:404)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzui40"),model/riscv_insts_cext.sail:402)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:404),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:404)),model/riscv_insts_cext.sail:404))]),model/riscv_insts_cext.sail:404)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:402)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzui5"),model/riscv_insts_cext.sail:403)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("nzui40"),model/riscv_insts_cext.sail:403)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:404),Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:403)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:403)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:403)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:403)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("nzui5"),model/riscv_insts_cext.sail:403)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:403)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex9875#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex9875#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex9878#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex9877#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex9878#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex9877#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex9883#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex9882#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex9883#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex9882#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_cext.sail:404)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzui5"),model/riscv_insts_cext.sail:404)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:404),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:404)),model/riscv_insts_cext.sail:404))]),model/riscv_insts_cext.sail:404)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:404)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:404)),model/riscv_insts_cext.sail:404)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("nzui40"),model/riscv_insts_cext.sail:404)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:404),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:404)),model/riscv_insts_cext.sail:404))]),model/riscv_insts_cext.sail:404)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_insts_cext.sail:404)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("nzui5"),model/riscv_insts_cext.sail:405)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("nzui40"),model/riscv_insts_cext.sail:405)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:404),Nexp_aux(Nexp_constant(5),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:405)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:405)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:405)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:405)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)));(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("nzui5"),model/riscv_insts_cext.sail:405)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:405)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex9995#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex9995#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex9998#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex9997#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex9998#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex9997#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex10003#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex10002#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex10003#"),Unknown)),Unknown),NC_aux(NC_or(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_var(Kid_aux(Var("'ex10002#"),Unknown)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:407),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_SLLI"),model/riscv_insts_cext.sail:407),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:407)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:400)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:407)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:400)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:400)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:408),[(E_aux(E_app(Id_aux(Id("SHIFTIOP"),model/riscv_insts_cext.sail:408),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:408)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:400)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:408)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:408)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_SLLI"),model/riscv_insts_cext.sail:408)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_types.sail:314)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193))]),model/riscv_insts_base.sail:193)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:193),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:410),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_SLLI"),model/riscv_insts_cext.sail:410),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:410)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:400)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:410)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:411)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:400)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:411)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:411)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:411)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.slli"),model/riscv_insts_cext.sail:412)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:412),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:412)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_cext.sail:412),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:412)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:412),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:412)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_6"),model/riscv_insts_cext.sail:412),[(MP_aux(MP_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:412)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("shamt"),model/riscv_insts_cext.sail:413)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000000"),model/riscv_insts_cext.sail:413)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:413)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:413)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:416),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:416),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:416)),model/riscv_insts_cext.sail:416))]),model/riscv_insts_cext.sail:416));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:416)),model/riscv_insts_cext.sail:416))]),model/riscv_insts_cext.sail:416),Id_aux(Id("C_LWSP"),model/riscv_insts_cext.sail:416)),model/riscv_insts_cext.sail:416)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:418),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_LWSP"),model/riscv_insts_cext.sail:418),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui76"),model/riscv_insts_cext.sail:418)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:420)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:420),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:420)),model/riscv_insts_cext.sail:420))]),model/riscv_insts_cext.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:420)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui5"),model/riscv_insts_cext.sail:418)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:420)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:420),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:420)),model/riscv_insts_cext.sail:420))]),model/riscv_insts_cext.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:420)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui42"),model/riscv_insts_cext.sail:418)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:420)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:420),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:420)),model/riscv_insts_cext.sail:420))]),model/riscv_insts_cext.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:420)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:418)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:419)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:419)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("010"),model/riscv_insts_cext.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui5"),model/riscv_insts_cext.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:420)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:420),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:420)),model/riscv_insts_cext.sail:420))]),model/riscv_insts_cext.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:420)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:420)),model/riscv_insts_cext.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui42"),model/riscv_insts_cext.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:420)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:420),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:420)),model/riscv_insts_cext.sail:420))]),model/riscv_insts_cext.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:420)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui76"),model/riscv_insts_cext.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:420)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:420),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:420)),model/riscv_insts_cext.sail:420))]),model/riscv_insts_cext.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:420)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_insts_cext.sail:420)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:421)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:421)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:423),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_LWSP"),model/riscv_insts_cext.sail:423),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:423)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:423)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:416)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:424),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:424)),model/riscv_insts_cext.sail:424))]),model/riscv_insts_cext.sail:424),P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:424)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:424)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:424)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_cext.sail:424),[(E_aux(E_lit(L_aux(L_num(12),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:424)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:424)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:416),Nexp_aux(Nexp_constant(2),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:424)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:425),[(E_aux(E_app(Id_aux(Id("LOAD"),model/riscv_insts_cext.sail:425),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:425)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:424)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("sp"),model/riscv_insts_cext.sail:425)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:425)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:425)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("WORD"),model/riscv_insts_cext.sail:425)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:425)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:425)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:288)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288))]),model/riscv_insts_base.sail:288)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:288),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:428),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_LWSP"),model/riscv_insts_cext.sail:428),[(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:428)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:428)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:429)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:429)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.lwsp"),model/riscv_insts_cext.sail:430)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:430),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:430)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_cext.sail:430),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:430)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:430),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:430)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_6"),model/riscv_insts_cext.sail:430),[(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:430)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:431)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:431)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:434),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:434),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:434)),model/riscv_insts_cext.sail:434))]),model/riscv_insts_cext.sail:434));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:434)),model/riscv_insts_cext.sail:434))]),model/riscv_insts_cext.sail:434),Id_aux(Id("C_LDSP"),model/riscv_insts_cext.sail:434)),model/riscv_insts_cext.sail:434)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:436),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_LDSP"),model/riscv_insts_cext.sail:436),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui86"),model/riscv_insts_cext.sail:436)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:438)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:438),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:438)),model/riscv_insts_cext.sail:438))]),model/riscv_insts_cext.sail:438)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:438)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui5"),model/riscv_insts_cext.sail:436)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:438)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:438),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:438)),model/riscv_insts_cext.sail:438))]),model/riscv_insts_cext.sail:438)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:438)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui43"),model/riscv_insts_cext.sail:436)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:438)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:438),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:438)),model/riscv_insts_cext.sail:438))]),model/riscv_insts_cext.sail:438)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:438)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:436)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:437)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:437)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:437)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex10159#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex10159#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("011"),model/riscv_insts_cext.sail:438)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui5"),model/riscv_insts_cext.sail:438)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:438)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:438),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:438)),model/riscv_insts_cext.sail:438))]),model/riscv_insts_cext.sail:438)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_insts_cext.sail:438)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:438)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:438)),model/riscv_insts_cext.sail:438)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui43"),model/riscv_insts_cext.sail:438)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:438)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:438),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:438)),model/riscv_insts_cext.sail:438))]),model/riscv_insts_cext.sail:438)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:438)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui86"),model/riscv_insts_cext.sail:438)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:438)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:438),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:438)),model/riscv_insts_cext.sail:438))]),model/riscv_insts_cext.sail:438)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:438)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_insts_cext.sail:438)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:439)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:439)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:439)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex10188#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex10188#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:441),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_LDSP"),model/riscv_insts_cext.sail:441),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:441)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:434)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:441)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:434)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:434)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:442),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:442)),model/riscv_insts_cext.sail:442))]),model/riscv_insts_cext.sail:442),P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:442)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:442)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:442)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_cext.sail:442),[(E_aux(E_lit(L_aux(L_num(12),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:442)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:434)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000"),model/riscv_insts_cext.sail:442)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:434),Nexp_aux(Nexp_constant(3),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:442)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:443),[(E_aux(E_app(Id_aux(Id("LOAD"),model/riscv_insts_cext.sail:443),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:443)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:442)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("sp"),model/riscv_insts_cext.sail:443)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:443)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:443)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("DOUBLE"),model/riscv_insts_cext.sail:443)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:443)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:443)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:288)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288))]),model/riscv_insts_base.sail:288)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:288),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:446),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_LDSP"),model/riscv_insts_cext.sail:446),[(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:446)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:434)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:446)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:447)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:447)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:447)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex10209#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex10209#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.ldsp"),model/riscv_insts_cext.sail:448)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:448),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:448)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_cext.sail:448),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:448)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:448),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:448)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_6"),model/riscv_insts_cext.sail:448),[(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:448)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:449)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:449)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:449)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex10215#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex10215#"),Unknown)),Unknown),NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:452),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:452),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:452)),model/riscv_insts_cext.sail:452))]),model/riscv_insts_cext.sail:452));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:452)),model/riscv_insts_cext.sail:452))]),model/riscv_insts_cext.sail:452),Id_aux(Id("C_SWSP"),model/riscv_insts_cext.sail:452)),model/riscv_insts_cext.sail:452)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:454),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_SWSP"),model/riscv_insts_cext.sail:454),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui76"),model/riscv_insts_cext.sail:454)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:455)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:455),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:455)),model/riscv_insts_cext.sail:455))]),model/riscv_insts_cext.sail:455)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:455)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui52"),model/riscv_insts_cext.sail:454)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:455)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:455),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:455)),model/riscv_insts_cext.sail:455))]),model/riscv_insts_cext.sail:455)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:455)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:454)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("110"),model/riscv_insts_cext.sail:455)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui52"),model/riscv_insts_cext.sail:455)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:455)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:455),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:455)),model/riscv_insts_cext.sail:455))]),model/riscv_insts_cext.sail:455)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_cext.sail:455)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui76"),model/riscv_insts_cext.sail:455)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:455)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:455),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:455)),model/riscv_insts_cext.sail:455))]),model/riscv_insts_cext.sail:455)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_cext.sail:455)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:455)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:455)),model/riscv_insts_cext.sail:455)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_insts_cext.sail:455)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:457),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_SWSP"),model/riscv_insts_cext.sail:457),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:457)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:457)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:452)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:458),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:458)),model/riscv_insts_cext.sail:458))]),model/riscv_insts_cext.sail:458),P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:458)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:458)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:458)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_cext.sail:458),[(E_aux(E_lit(L_aux(L_num(12),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:458)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00"),model/riscv_insts_cext.sail:458)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:452),Nexp_aux(Nexp_constant(2),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:458)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:459),[(E_aux(E_app(Id_aux(Id("STORE"),model/riscv_insts_cext.sail:459),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:459)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:458)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:459)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("sp"),model/riscv_insts_cext.sail:459)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("WORD"),model/riscv_insts_cext.sail:459)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:459)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:459)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:365)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365))]),model/riscv_insts_base.sail:365)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:365),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:462),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_SWSP"),model/riscv_insts_cext.sail:462),[(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:462)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:452)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:462)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.swsp"),model/riscv_insts_cext.sail:463)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:463),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:463)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_cext.sail:463),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:463)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:463),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:463)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_6"),model/riscv_insts_cext.sail:463),[(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:463)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:466),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:466),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:466)),model/riscv_insts_cext.sail:466))]),model/riscv_insts_cext.sail:466));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:466)),model/riscv_insts_cext.sail:466))]),model/riscv_insts_cext.sail:466),Id_aux(Id("C_SDSP"),model/riscv_insts_cext.sail:466)),model/riscv_insts_cext.sail:466)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:468),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_SDSP"),model/riscv_insts_cext.sail:468),[(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui86"),model/riscv_insts_cext.sail:468)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:470)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:470),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:470)),model/riscv_insts_cext.sail:470))]),model/riscv_insts_cext.sail:470)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:470)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui53"),model/riscv_insts_cext.sail:468)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:470)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:470),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:470)),model/riscv_insts_cext.sail:470))]),model/riscv_insts_cext.sail:470)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:470)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:468)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:469)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("111"),model/riscv_insts_cext.sail:470)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui53"),model/riscv_insts_cext.sail:470)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:470)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:470),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:470)),model/riscv_insts_cext.sail:470))]),model/riscv_insts_cext.sail:470)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:470)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("ui86"),model/riscv_insts_cext.sail:470)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:470)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:470),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:470)),model/riscv_insts_cext.sail:470))]),model/riscv_insts_cext.sail:470)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_cext.sail:470)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:470)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:470)),model/riscv_insts_cext.sail:470)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_insts_cext.sail:470)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:471)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:473),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_SDSP"),model/riscv_insts_cext.sail:473),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:473)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:466)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:473)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:466)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:466)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_cext.sail:474),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:474)),model/riscv_insts_cext.sail:474))]),model/riscv_insts_cext.sail:474),P_aux(P_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:474)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:474)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:474)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_cext.sail:474),[(E_aux(E_lit(L_aux(L_num(12),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:474)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:466)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("000"),model/riscv_insts_cext.sail:474)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:466),Nexp_aux(Nexp_constant(3),Unknown)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:474)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:475),[(E_aux(E_app(Id_aux(Id("STORE"),model/riscv_insts_cext.sail:475),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("imm"),model/riscv_insts_cext.sail:475)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_cext.sail:474)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:475)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("sp"),model/riscv_insts_cext.sail:475)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("DOUBLE"),model/riscv_insts_cext.sail:475)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_types.sail:107)),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:475)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_insts_cext.sail:475)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:365)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365))]),model/riscv_insts_base.sail:365)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:365),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:478),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_SDSP"),model/riscv_insts_cext.sail:478),[(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:478)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_cext.sail:466)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:478)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:479)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.sdsp"),model/riscv_insts_cext.sail:480)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:480),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:480)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_cext.sail:480),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:480)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:480),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:480)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_6"),model/riscv_insts_cext.sail:480),[(MP_aux(MP_id(Id_aux(Id("uimm"),model/riscv_insts_cext.sail:480)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/prelude_mapping.sail:129)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_cext.sail:481)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:484),Tu_aux(Tu_ty_id(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:484)),model/riscv_insts_cext.sail:484),Id_aux(Id("C_JR"),model/riscv_insts_cext.sail:484)),model/riscv_insts_cext.sail:484)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:486),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_JR"),model/riscv_insts_cext.sail:486),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:486)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:487)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:487)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_cext.sail:488)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:488)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:488)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:488)),model/riscv_insts_cext.sail:488)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_cext.sail:488)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_insts_cext.sail:488)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:489)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:489)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:491),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_JR"),model/riscv_insts_cext.sail:491),[(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:491)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:492),[(E_aux(E_app(Id_aux(Id("RISCV_JALR"),model/riscv_insts_cext.sail:492),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_cext.sail:492),[(E_aux(E_lit(L_aux(L_num(12),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:492)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:492)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:492)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:81)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:81),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:494),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_JR"),model/riscv_insts_cext.sail:494),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:494)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:495)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:495)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.jr"),model/riscv_insts_cext.sail:496)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:496),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:496)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_cext.sail:496),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:496)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:497)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:497)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:500),Tu_aux(Tu_ty_id(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:500)),model/riscv_insts_cext.sail:500),Id_aux(Id("C_JALR"),model/riscv_insts_cext.sail:500)),model/riscv_insts_cext.sail:500)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:502),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_JALR"),model/riscv_insts_cext.sail:502),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:502)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:503)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:503)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_cext.sail:504)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("1"),model/riscv_insts_cext.sail:504)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:504)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:504)),model/riscv_insts_cext.sail:504)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_cext.sail:504)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_insts_cext.sail:504)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:505)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:505)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:507),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_JALR"),model/riscv_insts_cext.sail:507),[(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:507)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:508),[(E_aux(E_app(Id_aux(Id("RISCV_JALR"),model/riscv_insts_cext.sail:508),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_cext.sail:508),[(E_aux(E_lit(L_aux(L_num(12),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:508)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:508)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("ra"),model/riscv_insts_cext.sail:508)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:81)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:81),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:510),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_JALR"),model/riscv_insts_cext.sail:510),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:510)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:511)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:511)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.jalr"),model/riscv_insts_cext.sail:512)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:512),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:512)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_cext.sail:512),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:512)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_cext.sail:513)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:513)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:516),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:516)),model/riscv_insts_cext.sail:516));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:516)),model/riscv_insts_cext.sail:516))]),model/riscv_insts_cext.sail:516),Id_aux(Id("C_MV"),model/riscv_insts_cext.sail:516)),model/riscv_insts_cext.sail:516)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:518),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_MV"),model/riscv_insts_cext.sail:518),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:518)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:518)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:519)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:519)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:519)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:519)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_cext.sail:520)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("0"),model/riscv_insts_cext.sail:520)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:520)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:520)),model/riscv_insts_cext.sail:520)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:520)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:520)),model/riscv_insts_cext.sail:520)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_insts_cext.sail:520)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:521)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:521)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:521)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:521)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:523),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_MV"),model/riscv_insts_cext.sail:523),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:523)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:523)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:516)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:524),[(E_aux(E_app(Id_aux(Id("RTYPE"),model/riscv_insts_cext.sail:524),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:524)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:524)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:524)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_ADD"),model/riscv_insts_cext.sail:524)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233))]),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:233),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:526),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_MV"),model/riscv_insts_cext.sail:526),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:526)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:526)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:527)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:527)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:527)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:527)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.mv"),model/riscv_insts_cext.sail:528)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:528),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:528)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_cext.sail:528),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:528)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:528),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:528)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_cext.sail:528),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:528)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_cext.sail:529)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:529)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:529)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:529)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:532),Tu_aux(Tu_ty_id(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_cext.sail:532)),model/riscv_insts_cext.sail:532),Id_aux(Id("C_EBREAK"),model/riscv_insts_cext.sail:532)),model/riscv_insts_cext.sail:532)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:534),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_EBREAK"),model/riscv_insts_cext.sail:534),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:534)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_cext.sail:535)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("1"),model/riscv_insts_cext.sail:535)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_cext.sail:535)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_cext.sail:535)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_insts_cext.sail:535)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:537),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_EBREAK"),model/riscv_insts_cext.sail:537),[(P_aux(P_lit(L_aux(L_unit,model/riscv_insts_cext.sail:537)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:538),[(E_aux(E_app(Id_aux(Id("EBREAK"),model/riscv_insts_cext.sail:538),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_cext.sail:538)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:750),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:540),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_EBREAK"),model/riscv_insts_cext.sail:540),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:540)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("c.ebreak"),model/riscv_insts_cext.sail:540)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_cext.sail:543),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:543)),model/riscv_insts_cext.sail:543));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:543)),model/riscv_insts_cext.sail:543))]),model/riscv_insts_cext.sail:543),Id_aux(Id("C_ADD"),model/riscv_insts_cext.sail:543)),model/riscv_insts_cext.sail:543)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_cext.sail:545),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_ADD"),model/riscv_insts_cext.sail:545),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:545)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:545)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:546)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:546)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:546)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:546)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("100"),model/riscv_insts_cext.sail:547)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("1"),model/riscv_insts_cext.sail:547)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:547)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:547)),model/riscv_insts_cext.sail:547)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:547)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_cext.sail:547)),model/riscv_insts_cext.sail:547)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_insts_cext.sail:547)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:548)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:548)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:548)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:548)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_cext.sail:550),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_ADD"),model/riscv_insts_cext.sail:550),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:550)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:550)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_cext.sail:543)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_app(Id_aux(Id("execute"),model/riscv_insts_cext.sail:551),[(E_aux(E_app(Id_aux(Id("RTYPE"),model/riscv_insts_cext.sail:551),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:551)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:551)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:551)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("RISCV_ADD"),model/riscv_insts_cext.sail:551)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_types.sail:315)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233))]),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_app(Id_aux(Id("ast"),model/riscv_insts_base.sail:233),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_cext.sail:553),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("C_ADD"),model/riscv_insts_cext.sail:553),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:553)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:553)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:554)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:554)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:554)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:554)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.add"),model/riscv_insts_cext.sail:555)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_cext.sail:555),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:555)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_cext.sail:555),[(MP_aux(MP_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:555)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_cext.sail:555),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_cext.sail:555)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_cext.sail:555),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:555)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rsd"),model/riscv_insts_cext.sail:556)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:556)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)));(E_aux(E_app(Id_aux(Id("neq_bits"),../sail/lib/vector_dec.sail:26),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_cext.sail:556)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("zreg"),model/riscv_insts_cext.sail:556)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:22)),../sail/lib/vector_dec.sail:22)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_mext.sail:6),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:6)),model/riscv_insts_mext.sail:6));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:6)),model/riscv_insts_mext.sail:6));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:6)),model/riscv_insts_mext.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:6)),model/riscv_insts_mext.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:6)),model/riscv_insts_mext.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:6)),model/riscv_insts_mext.sail:6))]),model/riscv_insts_mext.sail:6),Id_aux(Id("MUL"),model/riscv_insts_mext.sail:6)),model/riscv_insts_mext.sail:6)),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("encdec_mul_op"),model/riscv_insts_mext.sail:8),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8))]),model/riscv_insts_mext.sail:8),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_mext.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_mext.sail:8)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("encdec_mul_op"),model/riscv_insts_mext.sail:8),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8))]),model/riscv_insts_mext.sail:8),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_mext.sail:8),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8))]),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_tup([(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_mext.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8))]),model/riscv_insts_mext.sail:8))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_mext.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8))]),model/riscv_insts_mext.sail:8),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_mext.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_mext.sail:8)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_tup([(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:10)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:10)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:10)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8))]),model/riscv_insts_mext.sail:8))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("001"),model/riscv_insts_mext.sail:10)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8))]),model/riscv_insts_mext.sail:8),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_mext.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_mext.sail:8)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_tup([(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:11)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:11)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_mext.sail:11)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8))]),model/riscv_insts_mext.sail:8))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("010"),model/riscv_insts_mext.sail:11)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8))]),model/riscv_insts_mext.sail:8),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_mext.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_mext.sail:8)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_tup([(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:12)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_mext.sail:12)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_mext.sail:12)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8))]),model/riscv_insts_mext.sail:8))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("011"),model/riscv_insts_mext.sail:12)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:8)),model/riscv_insts_mext.sail:8))]),model/riscv_insts_mext.sail:8),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_mext.sail:8)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_mext.sail:8)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_mext.sail:16),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("MUL"),model/riscv_insts_mext.sail:16),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:16)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:16)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:16)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("high"),model/riscv_insts_mext.sail:16)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10585#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("signed1"),model/riscv_insts_mext.sail:16)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10586#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("signed2"),model/riscv_insts_mext.sail:16)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10587#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000001"),model/riscv_insts_mext.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_app(Id_aux(Id("encdec_mul_op"),model/riscv_insts_mext.sail:17),[(MP_aux(MP_id(Id_aux(Id("high"),model/riscv_insts_mext.sail:17)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10592#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("signed1"),model/riscv_insts_mext.sail:17)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10593#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("signed2"),model/riscv_insts_mext.sail:17)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10594#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_mext.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_mext.sail:17),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_mext.sail:17)),model/riscv_insts_mext.sail:17))]),model/riscv_insts_mext.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),model/riscv_insts_mext.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0110011"),model/riscv_insts_mext.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_mext.sail:19),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MUL"),model/riscv_insts_mext.sail:19),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("high"),model/riscv_insts_mext.sail:19)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10600#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("signed1"),model/riscv_insts_mext.sail:19)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10601#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("signed2"),model/riscv_insts_mext.sail:19)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10602#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:6)),model/riscv_insts_mext.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:6)),model/riscv_insts_mext.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:6)),model/riscv_insts_mext.sail:6))]),model/riscv_insts_mext.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("haveMulDiv"),model/riscv_insts_mext.sail:20),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_mext.sail:20)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:100)),model/riscv_sys_regs.sail:100)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:23)),model/riscv_insts_mext.sail:23),P_aux(P_id(Id_aux(Id("rs1_int"),model/riscv_insts_mext.sail:23)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:23)),model/riscv_insts_mext.sail:23)),E_aux(E_if(E_aux(E_id(Id_aux(Id("signed1"),model/riscv_insts_mext.sail:23)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10601#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_mext.sail:23),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_mext.sail:23),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:23)),model/riscv_insts_mext.sail:23))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:24)),model/riscv_insts_mext.sail:24),P_aux(P_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:24)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:24)),model/riscv_insts_mext.sail:24)),E_aux(E_if(E_aux(E_id(Id_aux(Id("signed2"),model/riscv_insts_mext.sail:24)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10602#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_mext.sail:24),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_mext.sail:24),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:24)),model/riscv_insts_mext.sail:24))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("result_wide"),model/riscv_insts_mext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(128),../sail/lib/arith.sail:41)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("to_bits"),model/riscv_insts_mext.sail:25),[(E_aux(E_app(Id_aux(Id("mult_atom"),../sail/lib/arith.sail:45),[(E_aux(E_lit(L_aux(L_num(2),model/riscv_insts_mext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:41),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(2),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41))]),../sail/lib/arith.sail:41)));(E_aux(E_app(Id_aux(Id("mult_atom"),../sail/lib/arith.sail:45),[(E_aux(E_id(Id_aux(Id("rs1_int"),model/riscv_insts_mext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:25)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:41),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41))]),../sail/lib/arith.sail:41)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(128),../sail/lib/arith.sail:41)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("result"),model/riscv_insts_mext.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(127),../sail/lib/arith.sail:18),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_if(E_aux(E_id(Id_aux(Id("high"),model/riscv_insts_mext.sail:26)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10600#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("result_wide"),model/riscv_insts_mext.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(128),../sail/lib/arith.sail:41)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_app(Id_aux(Id("mult_atom"),../sail/lib/arith.sail:45),[(E_aux(E_lit(L_aux(L_num(2),model/riscv_insts_mext.sail:27)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:41),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(2),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41))]),../sail/lib/arith.sail:41)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_mext.sail:27)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(128),../sail/lib/arith.sail:41),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(127),../sail/lib/arith.sail:18),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("result_wide"),model/riscv_insts_mext.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(128),../sail/lib/arith.sail:41)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_mext.sail:28)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_mext.sail:28)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(127),../sail/lib/arith.sail:18),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_insts_mext.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(127),../sail/lib/arith.sail:18),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_mext.sail:30)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_mext.sail:32),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_mext.sail:32)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_mext.sail:33)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("mul_mnemonic"),model/riscv_insts_mext.sail:37),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37))]),model/riscv_insts_mext.sail:37),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("mul_mnemonic"),model/riscv_insts_mext.sail:37),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37))]),model/riscv_insts_mext.sail:37),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_tup([(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_mext.sail:38)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:38)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:38)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37))]),model/riscv_insts_mext.sail:37))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mul"),model/riscv_insts_mext.sail:38)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37))]),model/riscv_insts_mext.sail:37),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_tup([(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:39)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:39)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:39)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37))]),model/riscv_insts_mext.sail:37))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mulh"),model/riscv_insts_mext.sail:39)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37))]),model/riscv_insts_mext.sail:37),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_tup([(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:40)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:40)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_mext.sail:40)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37))]),model/riscv_insts_mext.sail:37))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mulhsu"),model/riscv_insts_mext.sail:40)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37))]),model/riscv_insts_mext.sail:37),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_tup([(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:41)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_mext.sail:41)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_mext.sail:41)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37))]),model/riscv_insts_mext.sail:37))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("mulhu"),model/riscv_insts_mext.sail:41)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37))]),model/riscv_insts_mext.sail:37),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37)),model/riscv_insts_mext.sail:37)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_mext.sail:44),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("MUL"),model/riscv_insts_mext.sail:44),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:44)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:44)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:44)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("high"),model/riscv_insts_mext.sail:44)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10644#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("signed1"),model/riscv_insts_mext.sail:44)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10645#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("signed2"),model/riscv_insts_mext.sail:44)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10646#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_app(Id_aux(Id("mul_mnemonic"),model/riscv_insts_mext.sail:45),[(MP_aux(MP_id(Id_aux(Id("high"),model/riscv_insts_mext.sail:45)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10647#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("signed1"),model/riscv_insts_mext.sail:45)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10648#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("signed2"),model/riscv_insts_mext.sail:45)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10649#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_mext.sail:45),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:45)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:45),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_mext.sail:45),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:45)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:45),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_mext.sail:45),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:45)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:45),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_mext.sail:48),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:48)),model/riscv_insts_mext.sail:48));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:48)),model/riscv_insts_mext.sail:48));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:48)),model/riscv_insts_mext.sail:48));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:48)),model/riscv_insts_mext.sail:48))]),model/riscv_insts_mext.sail:48),Id_aux(Id("DIV"),model/riscv_insts_mext.sail:48)),model/riscv_insts_mext.sail:48)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_mext.sail:50),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("DIV"),model/riscv_insts_mext.sail:50),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:50)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10663#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000001"),model/riscv_insts_mext.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_insts_mext.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_app(Id_aux(Id("bool_not_bits"),model/riscv_insts_mext.sail:51),[(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:51)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10666#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:337)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0110011"),model/riscv_insts_mext.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_mext.sail:53),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("DIV"),model/riscv_insts_mext.sail:53),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:53)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10670#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:48)),model/riscv_insts_mext.sail:48))]),model/riscv_insts_mext.sail:48)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("haveMulDiv"),model/riscv_insts_mext.sail:54),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_mext.sail:54)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:100)),model/riscv_sys_regs.sail:100)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:55)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:55)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:56)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:56)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:57)),model/riscv_insts_mext.sail:57),P_aux(P_id(Id_aux(Id("rs1_int"),model/riscv_insts_mext.sail:57)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:57)),model/riscv_insts_mext.sail:57)),E_aux(E_if(E_aux(E_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:57)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10670#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_mext.sail:57),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:57)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_mext.sail:57),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:57)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:57)),model/riscv_insts_mext.sail:57))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:58)),model/riscv_insts_mext.sail:58),P_aux(P_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:58)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:58)),model/riscv_insts_mext.sail:58)),E_aux(E_if(E_aux(E_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:58)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10670#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_mext.sail:58),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_mext.sail:58),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:58)),model/riscv_insts_mext.sail:58))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:59)),model/riscv_insts_mext.sail:59),P_aux(P_id(Id_aux(Id("q"),model/riscv_insts_mext.sail:59)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_q"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:59)),model/riscv_insts_mext.sail:59)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:59)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_mext.sail:59)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_lit(L_aux(L_num(-1),model/riscv_insts_mext.sail:59)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(-1),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("quot_round_zero"),model/riscv_insts_mext.sail:59),[(E_aux(E_id(Id_aux(Id("rs1_int"),model/riscv_insts_mext.sail:59)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:59)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:77)),model/prelude.sail:77))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:59)),model/riscv_insts_mext.sail:59))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:61)),model/riscv_insts_mext.sail:61),P_aux(P_id(Id_aux(Id("q'"),model/riscv_insts_mext.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_q'"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:61)),model/riscv_insts_mext.sail:61)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10670#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("gt_int"),../sail/lib/flow.sail:51),[(E_aux(E_id(Id_aux(Id("q"),model/riscv_insts_mext.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_q"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("xlen_max_signed"),model/riscv_insts_mext.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18)),model/prelude.sail:95),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:41),[(A_aux(A_bool(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'_q"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18)),model/prelude.sail:95),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41))]),../sail/lib/flow.sail:41)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:22),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex10670#"),Unknown)),../sail/lib/flow.sail:22),NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'_q"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18)),model/prelude.sail:95),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))]),../sail/lib/flow.sail:22)),E_aux(E_id(Id_aux(Id("xlen_min_signed"),model/riscv_insts_mext.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18)),model/prelude.sail:95)),../sail/lib/arith.sail:18)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("q"),model/riscv_insts_mext.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_q"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:61)),model/riscv_insts_mext.sail:61))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("to_bits"),model/riscv_insts_mext.sail:62),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("q'"),model/riscv_insts_mext.sail:62)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_q'"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_mext.sail:63)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_mext.sail:65),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_mext.sail:65)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_mext.sail:66)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("maybe_not_u"),model/riscv_insts_mext.sail:70),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:70)),model/riscv_insts_mext.sail:70),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_mext.sail:70)),model/riscv_insts_mext.sail:70)),model/riscv_insts_mext.sail:70)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("maybe_not_u"),model/riscv_insts_mext.sail:70),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:70)),model/riscv_insts_mext.sail:70),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_mext.sail:70)),model/riscv_insts_mext.sail:70)),model/riscv_insts_mext.sail:70)),model/riscv_insts_mext.sail:70),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_mext.sail:71)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("u"),model/riscv_insts_mext.sail:71)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:70)),model/riscv_insts_mext.sail:70),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_mext.sail:70)),model/riscv_insts_mext.sail:70)),model/riscv_insts_mext.sail:70)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_mext.sail:72)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string(""),model/riscv_insts_mext.sail:72)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:70)),model/riscv_insts_mext.sail:70),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_mext.sail:70)),model/riscv_insts_mext.sail:70)),model/riscv_insts_mext.sail:70)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_mext.sail:75),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("DIV"),model/riscv_insts_mext.sail:75),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:75)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:75)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:75)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:75)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10697#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("div"),model/riscv_insts_mext.sail:76)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("maybe_not_u"),model/riscv_insts_mext.sail:76),[(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:76)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10698#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_mext.sail:76),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:76)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:76),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:76)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_mext.sail:76),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:76)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:76),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:76)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_mext.sail:76),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:76)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:76),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:76)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_mext.sail:79),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:79)),model/riscv_insts_mext.sail:79));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:79)),model/riscv_insts_mext.sail:79));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:79)),model/riscv_insts_mext.sail:79));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:79)),model/riscv_insts_mext.sail:79))]),model/riscv_insts_mext.sail:79),Id_aux(Id("REM"),model/riscv_insts_mext.sail:79)),model/riscv_insts_mext.sail:79)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_mext.sail:81),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("REM"),model/riscv_insts_mext.sail:81),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:81)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:81)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:81)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:81)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10712#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000001"),model/riscv_insts_mext.sail:82)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:82)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:82)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("11"),model/riscv_insts_mext.sail:82)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_app(Id_aux(Id("bool_not_bits"),model/riscv_insts_mext.sail:82),[(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:82)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10715#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:337)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:82)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0110011"),model/riscv_insts_mext.sail:82)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_mext.sail:84),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("REM"),model/riscv_insts_mext.sail:84),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:84)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10719#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:79)),model/riscv_insts_mext.sail:79))]),model/riscv_insts_mext.sail:79)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("haveMulDiv"),model/riscv_insts_mext.sail:85),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_mext.sail:85)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:100)),model/riscv_sys_regs.sail:100)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:86)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:86)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:87)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:87)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:88)),model/riscv_insts_mext.sail:88),P_aux(P_id(Id_aux(Id("rs1_int"),model/riscv_insts_mext.sail:88)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:88)),model/riscv_insts_mext.sail:88)),E_aux(E_if(E_aux(E_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:88)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10719#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_mext.sail:88),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:88)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_mext.sail:88),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:88)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:88)),model/riscv_insts_mext.sail:88))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:89)),model/riscv_insts_mext.sail:89),P_aux(P_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:89)),model/riscv_insts_mext.sail:89)),E_aux(E_if(E_aux(E_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10719#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_mext.sail:89),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_mext.sail:89),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:89)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:89)),model/riscv_insts_mext.sail:89))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:90)),model/riscv_insts_mext.sail:90),P_aux(P_id(Id_aux(Id("r"),model/riscv_insts_mext.sail:90)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_r"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:90)),model/riscv_insts_mext.sail:90)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:90)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_mext.sail:90)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_id(Id_aux(Id("rs1_int"),model/riscv_insts_mext.sail:90)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("rem_round_zero"),model/riscv_insts_mext.sail:90),[(E_aux(E_id(Id_aux(Id("rs1_int"),model/riscv_insts_mext.sail:90)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:90)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:78)),model/prelude.sail:78))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:90)),model/riscv_insts_mext.sail:90))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:92)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("to_bits"),model/riscv_insts_mext.sail:92),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("r"),model/riscv_insts_mext.sail:92)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_r"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_mext.sail:93)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_mext.sail:95),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_mext.sail:95)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_mext.sail:96)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_mext.sail:100),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("REM"),model/riscv_insts_mext.sail:100),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:100)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:100)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:100)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:100)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10737#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("rem"),model/riscv_insts_mext.sail:101)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("maybe_not_u"),model/riscv_insts_mext.sail:101),[(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:101)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10738#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_mext.sail:101),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:101)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:101),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:101)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_mext.sail:101),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:101)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:101),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:101)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_mext.sail:101),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:101)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:101),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:101)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_mext.sail:104),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:104)),model/riscv_insts_mext.sail:104));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:104)),model/riscv_insts_mext.sail:104));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:104)),model/riscv_insts_mext.sail:104))]),model/riscv_insts_mext.sail:104),Id_aux(Id("MULW"),model/riscv_insts_mext.sail:104)),model/riscv_insts_mext.sail:104)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_mext.sail:106),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("MULW"),model/riscv_insts_mext.sail:106),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_mext.sail:107)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000001"),model/riscv_insts_mext.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_mext.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0111011"),model/riscv_insts_mext.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_mext.sail:109)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_mext.sail:111),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MULW"),model/riscv_insts_mext.sail:111),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:111)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:111)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:111)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_mext.sail:104)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("haveMulDiv"),model/riscv_insts_mext.sail:112),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_mext.sail:112)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:100)),model/riscv_sys_regs.sail:100)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_mext.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_mext.sail:113)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_mext.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_mext.sail:114)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:115)),model/riscv_insts_mext.sail:115),P_aux(P_id(Id_aux(Id("rs1_int"),model/riscv_insts_mext.sail:115)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:115)),model/riscv_insts_mext.sail:115)),E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_mext.sail:115),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:115)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:116)),model/riscv_insts_mext.sail:116),P_aux(P_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:116)),model/riscv_insts_mext.sail:116)),E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_mext.sail:116),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("result32"),model/riscv_insts_mext.sail:118)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("to_bits"),model/riscv_insts_mext.sail:118),[(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_mext.sail:118)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("mult_atom"),../sail/lib/arith.sail:45),[(E_aux(E_id(Id_aux(Id("rs1_int"),model/riscv_insts_mext.sail:118)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:118)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:41),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),../sail/lib/arith.sail:41)),../sail/lib/arith.sail:41))]),../sail/lib/arith.sail:41)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_mext.sail:118)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_mext.sail:118)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_mext.sail:119)),model/riscv_insts_mext.sail:119),P_aux(P_id(Id_aux(Id("result"),model/riscv_insts_mext.sail:119)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_mext.sail:119),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("result32"),model/riscv_insts_mext.sail:119)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("result"),model/riscv_insts_mext.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_mext.sail:121)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_mext.sail:123),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_mext.sail:123)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_mext.sail:124)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_mext.sail:128),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("MULW"),model/riscv_insts_mext.sail:128),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:128)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:128)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:128)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_mext.sail:129)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("mulw"),model/riscv_insts_mext.sail:130)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_mext.sail:130),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:130)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:130),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_mext.sail:130),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:130)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:130),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_mext.sail:130),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:130)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:130),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_mext.sail:131)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_mext.sail:134),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:134)),model/riscv_insts_mext.sail:134));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:134)),model/riscv_insts_mext.sail:134));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:134)),model/riscv_insts_mext.sail:134));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:134)),model/riscv_insts_mext.sail:134))]),model/riscv_insts_mext.sail:134),Id_aux(Id("DIVW"),model/riscv_insts_mext.sail:134)),model/riscv_insts_mext.sail:134)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_mext.sail:136),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("DIVW"),model/riscv_insts_mext.sail:136),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:136)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:136)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:136)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:136)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10783#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_mext.sail:137)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000001"),model/riscv_insts_mext.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_insts_mext.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_app(Id_aux(Id("bool_not_bits"),model/riscv_insts_mext.sail:138),[(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:138)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10786#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:337)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0111011"),model/riscv_insts_mext.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_mext.sail:139)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_mext.sail:141),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("DIVW"),model/riscv_insts_mext.sail:141),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:141)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:141)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:141)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:141)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10790#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:134)),model/riscv_insts_mext.sail:134))]),model/riscv_insts_mext.sail:134)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("haveMulDiv"),model/riscv_insts_mext.sail:142),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_mext.sail:142)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:100)),model/riscv_sys_regs.sail:100)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:143)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:143)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_mext.sail:143)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_mext.sail:143)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:144)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:144)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_mext.sail:144)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_mext.sail:144)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:145)),model/riscv_insts_mext.sail:145),P_aux(P_id(Id_aux(Id("rs1_int"),model/riscv_insts_mext.sail:145)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:145)),model/riscv_insts_mext.sail:145)),E_aux(E_if(E_aux(E_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:145)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10790#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_mext.sail:145),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_mext.sail:145),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:145)),model/riscv_insts_mext.sail:145))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:146)),model/riscv_insts_mext.sail:146),P_aux(P_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:146)),model/riscv_insts_mext.sail:146)),E_aux(E_if(E_aux(E_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10790#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_mext.sail:146),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:146)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_mext.sail:146),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:146)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:146)),model/riscv_insts_mext.sail:146))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:147)),model/riscv_insts_mext.sail:147),P_aux(P_id(Id_aux(Id("q"),model/riscv_insts_mext.sail:147)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_q"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:147)),model/riscv_insts_mext.sail:147)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:147)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_mext.sail:147)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_lit(L_aux(L_num(-1),model/riscv_insts_mext.sail:147)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(-1),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("quot_round_zero"),model/riscv_insts_mext.sail:147),[(E_aux(E_id(Id_aux(Id("rs1_int"),model/riscv_insts_mext.sail:147)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:147)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:77)),model/prelude.sail:77))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:147)),model/riscv_insts_mext.sail:147))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:149)),model/riscv_insts_mext.sail:149),P_aux(P_id(Id_aux(Id("q'"),model/riscv_insts_mext.sail:149)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_q'"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:149)),model/riscv_insts_mext.sail:149)),E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:149)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10790#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("gt_int"),../sail/lib/flow.sail:51),[(E_aux(E_id(Id_aux(Id("q"),model/riscv_insts_mext.sail:149)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_q"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_app(Id_aux(Id("pow2"),model/riscv_insts_mext.sail:149),[(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_mext.sail:149)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),model/prelude.sail:95),[(A_aux(A_nexp(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(31),Unknown)),model/prelude.sail:95)),model/prelude.sail:95))]),model/prelude.sail:95)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_mext.sail:149)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(31),Unknown)),model/prelude.sail:95),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:41),[(A_aux(A_bool(NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'_q"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(31),Unknown)),model/prelude.sail:95),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/flow.sail:41)),../sail/lib/flow.sail:41))]),../sail/lib/flow.sail:41)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:22),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex10790#"),Unknown)),../sail/lib/flow.sail:22),NC_aux(NC_bounded_gt(Nexp_aux(Nexp_var(Kid_aux(Var("'_q"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(31),Unknown)),model/prelude.sail:95),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:22))]),../sail/lib/flow.sail:22)),E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_mext.sail:149)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("int_power"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_num(2),model/riscv_insts_mext.sail:149)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_mext.sail:149)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:67)),model/prelude.sail:67)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex10806#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(0),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'ex10806#"),Unknown)),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)),Unknown)),E_aux(E_id(Id_aux(Id("q"),model/riscv_insts_mext.sail:149)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_q"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:149)),model/riscv_insts_mext.sail:149))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:150)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_mext.sail:150),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("to_bits"),model/riscv_insts_mext.sail:150),[(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_mext.sail:150)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("q'"),model/riscv_insts_mext.sail:150)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_q'"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_mext.sail:151)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_mext.sail:153),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_mext.sail:153)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_mext.sail:154)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_mext.sail:158),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("DIVW"),model/riscv_insts_mext.sail:158),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:158)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:158)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:158)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:158)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10813#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_mext.sail:159)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("div"),model/riscv_insts_mext.sail:160)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("maybe_not_u"),model/riscv_insts_mext.sail:160),[(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:160)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10814#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_lit(L_aux(L_string("w"),model/riscv_insts_mext.sail:160)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_mext.sail:160),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:160)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:160),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:160)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_mext.sail:160),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:160)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:160),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:160)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_mext.sail:160),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:160)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:160),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:160)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_mext.sail:161)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_mext.sail:164),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:164)),model/riscv_insts_mext.sail:164));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:164)),model/riscv_insts_mext.sail:164));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_mext.sail:164)),model/riscv_insts_mext.sail:164));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:164)),model/riscv_insts_mext.sail:164))]),model/riscv_insts_mext.sail:164),Id_aux(Id("REMW"),model/riscv_insts_mext.sail:164)),model/riscv_insts_mext.sail:164)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_mext.sail:166),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("REMW"),model/riscv_insts_mext.sail:166),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:166)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:166)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10828#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_mext.sail:167)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000001"),model/riscv_insts_mext.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("11"),model/riscv_insts_mext.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_app(Id_aux(Id("bool_not_bits"),model/riscv_insts_mext.sail:168),[(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:168)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10831#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:337)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("0111011"),model/riscv_insts_mext.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_mext.sail:169)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_mext.sail:171),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("REMW"),model/riscv_insts_mext.sail:171),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:171)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:171)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:171)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:171)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10835#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_mext.sail:164)),model/riscv_insts_mext.sail:164))]),model/riscv_insts_mext.sail:164)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("haveMulDiv"),model/riscv_insts_mext.sail:172),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_mext.sail:172)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:100)),model/riscv_sys_regs.sail:100)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:173)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:173)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_mext.sail:173)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_mext.sail:173)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(31),model/riscv_insts_mext.sail:174)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(31),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_mext.sail:174)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:175)),model/riscv_insts_mext.sail:175),P_aux(P_id(Id_aux(Id("rs1_int"),model/riscv_insts_mext.sail:175)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:175)),model/riscv_insts_mext.sail:175)),E_aux(E_if(E_aux(E_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:175)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10835#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_mext.sail:175),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:175)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_mext.sail:175),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_mext.sail:175)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:175)),model/riscv_insts_mext.sail:175))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:176)),model/riscv_insts_mext.sail:176),P_aux(P_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:176)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:176)),model/riscv_insts_mext.sail:176)),E_aux(E_if(E_aux(E_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:176)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10835#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("signed"),model/riscv_insts_mext.sail:176),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:176)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:249),[(A_aux(A_nexp(Nexp_aux(Nexp_neg(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249)),../sail/lib/vector_dec.sail:249))]),../sail/lib/vector_dec.sail:249)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_mext.sail:176),[(E_aux(E_id(Id_aux(Id("rs2_val"),model/riscv_insts_mext.sail:176)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(31),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:176)),model/riscv_insts_mext.sail:176))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:177)),model/riscv_insts_mext.sail:177),P_aux(P_id(Id_aux(Id("r"),model/riscv_insts_mext.sail:177)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_r"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:177)),model/riscv_insts_mext.sail:177)),E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:177)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_mext.sail:177)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_id(Id_aux(Id("rs1_int"),model/riscv_insts_mext.sail:177)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("rem_round_zero"),model/riscv_insts_mext.sail:177),[(E_aux(E_id(Id_aux(Id("rs1_int"),model/riscv_insts_mext.sail:177)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs1_int"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rs2_int"),model/riscv_insts_mext.sail:177)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_rs2_int"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("int"),model/prelude.sail:78)),model/prelude.sail:78))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_insts_mext.sail:177)),model/riscv_insts_mext.sail:177))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:179)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_insts_mext.sail:179),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("to_bits"),model/riscv_insts_mext.sail:179),[(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_mext.sail:179)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("r"),model/riscv_insts_mext.sail:179)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_r"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_mext.sail:180)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_mext.sail:182),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_mext.sail:182)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_mext.sail:183)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_mext.sail:187),MCL_aux(MCL_bidir(MPat_aux(MPat_when(MP_aux(MP_app(Id_aux(Id("REMW"),model/riscv_insts_mext.sail:187),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:187)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:187)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:187)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:187)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10853#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_mext.sail:188)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None),MPat_aux(MPat_when(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("rem"),model/riscv_insts_mext.sail:189)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("maybe_not_u"),model/riscv_insts_mext.sail:189),[(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_mext.sail:189)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10854#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_lit(L_aux(L_string("w"),model/riscv_insts_mext.sail:189)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_mext.sail:189),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:189)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:189),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_mext.sail:189)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_mext.sail:189),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:189)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:189),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_mext.sail:189)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_mext.sail:189),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_mext.sail:189)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_mext.sail:189),[(MP_aux(MP_id(Id_aux(Id("rs2"),model/riscv_insts_mext.sail:189)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(64),model/riscv_insts_mext.sail:190)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(64),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_zicsr.sail:5),Tu_aux(Tu_ty_id(Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_zicsr.sail:5),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5))]),model/riscv_insts_zicsr.sail:5));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5));(Typ_aux(Typ_id(Id_aux(Id("regidx"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5));(Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5))]),model/riscv_insts_zicsr.sail:5),Id_aux(Id("CSR"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("encdec_csrop"),model/riscv_insts_zicsr.sail:7),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:7)),model/riscv_insts_zicsr.sail:7),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_zicsr.sail:7)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:7)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("encdec_csrop"),model/riscv_insts_zicsr.sail:7),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:7)),model/riscv_insts_zicsr.sail:7),Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_insts_zicsr.sail:7),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_zicsr.sail:7)),model/riscv_insts_zicsr.sail:7))]),model/riscv_insts_zicsr.sail:7)),model/riscv_insts_zicsr.sail:7)),model/riscv_insts_zicsr.sail:7),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("CSRRW"),model/riscv_insts_zicsr.sail:8)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:7)),model/riscv_insts_zicsr.sail:7))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("01"),model/riscv_insts_zicsr.sail:8)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:7)),model/riscv_insts_zicsr.sail:7),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_zicsr.sail:7)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:7)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("CSRRS"),model/riscv_insts_zicsr.sail:9)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:7)),model/riscv_insts_zicsr.sail:7))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("10"),model/riscv_insts_zicsr.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:7)),model/riscv_insts_zicsr.sail:7),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_zicsr.sail:7)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:7)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("CSRRC"),model/riscv_insts_zicsr.sail:10)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:7)),model/riscv_insts_zicsr.sail:7))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_bin("11"),model/riscv_insts_zicsr.sail:10)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:7)),model/riscv_insts_zicsr.sail:7),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_zicsr.sail:7)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:7)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_zicsr.sail:13),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("CSR"),model/riscv_insts_zicsr.sail:13),[(MP_aux(MP_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_zicsr.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_zicsr.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("is_imm"),model/riscv_insts_zicsr.sail:13)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10889#"),Unknown)),Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_zicsr.sail:13)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:14)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_zicsr.sail:14)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_app(Id_aux(Id("bool_bits"),model/riscv_insts_zicsr.sail:14),[(MP_aux(MP_id(Id_aux(Id("is_imm"),model/riscv_insts_zicsr.sail:14)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex10892#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),model/riscv_types.sail:332)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_app(Id_aux(Id("encdec_csrop"),model/riscv_insts_zicsr.sail:14),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_zicsr.sail:14)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:7)),model/riscv_insts_zicsr.sail:7)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_insts_zicsr.sail:7)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_typ(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_zicsr.sail:14)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_bin("1110011"),model/riscv_insts_zicsr.sail:14)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("readCSR"),model/riscv_insts_zicsr.sail:16),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_insts_zicsr.sail:16)),model/riscv_insts_zicsr.sail:16))],Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_zicsr.sail:16)),model/riscv_insts_zicsr.sail:16),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:414))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_zicsr.sail:16)),model/riscv_insts_zicsr.sail:16)),model/riscv_insts_zicsr.sail:16),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("readCSR"),model/riscv_insts_zicsr.sail:16),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_insts_zicsr.sail:16)),model/riscv_insts_zicsr.sail:16),P_aux(P_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:16)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_zicsr.sail:17)),model/riscv_insts_zicsr.sail:17),P_aux(P_id(Id_aux(Id("res"),model/riscv_insts_zicsr.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:18)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("F11"),model/riscv_insts_zicsr.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_zicsr.sail:20),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("mvendorid"),model/riscv_insts_zicsr.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("F12"),model/riscv_insts_zicsr.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("marchid"),model/riscv_insts_zicsr.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("F13"),model/riscv_insts_zicsr.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("mimpid"),model/riscv_insts_zicsr.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("F14"),model/riscv_insts_zicsr.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("mhartid"),model/riscv_insts_zicsr.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("300"),model/riscv_insts_zicsr.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_insts_zicsr.sail:24)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("301"),model/riscv_insts_zicsr.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("_get_Misa_bits"),:1),[(E_aux(E_id(Id_aux(Id("misa"),model/riscv_insts_zicsr.sail:25)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("302"),model/riscv_insts_zicsr.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("_get_Medeleg_bits"),:1),[(E_aux(E_id(Id_aux(Id("medeleg"),model/riscv_insts_zicsr.sail:26)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:295)),model/riscv_sys_regs.sail:295)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("303"),model/riscv_insts_zicsr.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("mideleg"),model/riscv_insts_zicsr.sail:27)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("304"),model/riscv_insts_zicsr.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("mie"),model/riscv_insts_zicsr.sail:28)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("305"),model/riscv_insts_zicsr.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("get_mtvec"),model/riscv_insts_zicsr.sail:29),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:29)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("306"),model/riscv_insts_zicsr.sail:30)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_zicsr.sail:30),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Counteren_bits"),:1),[(E_aux(E_id(Id_aux(Id("mcounteren"),model/riscv_insts_zicsr.sail:30)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:371)),model/riscv_sys_regs.sail:371)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("340"),model/riscv_insts_zicsr.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("mscratch"),model/riscv_insts_zicsr.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("341"),model/riscv_insts_zicsr.sail:32)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("get_xret_target"),model/riscv_insts_zicsr.sail:32),[(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_insts_zicsr.sail:32)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("pc_alignment_mask"),model/riscv_insts_zicsr.sail:32),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:32)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("342"),model/riscv_insts_zicsr.sail:33)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("_get_Mcause_bits"),:1),[(E_aux(E_id(Id_aux(Id("mcause"),model/riscv_insts_zicsr.sail:33)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:325)),model/riscv_sys_regs.sail:325)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("343"),model/riscv_insts_zicsr.sail:34)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("mtval"),model/riscv_insts_zicsr.sail:34)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("344"),model/riscv_insts_zicsr.sail:35)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("mip"),model/riscv_insts_zicsr.sail:35)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3A0"),model/riscv_insts_zicsr.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("pmpReadCfgReg"),model/riscv_insts_zicsr.sail:37),[(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_zicsr.sail:37)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3A1"),model/riscv_insts_zicsr.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:38)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("pmpReadCfgReg"),model/riscv_insts_zicsr.sail:38),[(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_zicsr.sail:38)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3A2"),model/riscv_insts_zicsr.sail:39)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("pmpReadCfgReg"),model/riscv_insts_zicsr.sail:39),[(E_aux(E_lit(L_aux(L_num(2),model/riscv_insts_zicsr.sail:39)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3A3"),model/riscv_insts_zicsr.sail:40)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:40)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("pmpReadCfgReg"),model/riscv_insts_zicsr.sail:40),[(E_aux(E_lit(L_aux(L_num(3),model/riscv_insts_zicsr.sail:40)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B0"),model/riscv_insts_zicsr.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr0"),model/riscv_insts_zicsr.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B1"),model/riscv_insts_zicsr.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr1"),model/riscv_insts_zicsr.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B2"),model/riscv_insts_zicsr.sail:44)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr2"),model/riscv_insts_zicsr.sail:44)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B3"),model/riscv_insts_zicsr.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr3"),model/riscv_insts_zicsr.sail:45)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B4"),model/riscv_insts_zicsr.sail:46)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr4"),model/riscv_insts_zicsr.sail:46)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B5"),model/riscv_insts_zicsr.sail:47)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr5"),model/riscv_insts_zicsr.sail:47)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B6"),model/riscv_insts_zicsr.sail:48)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr6"),model/riscv_insts_zicsr.sail:48)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B7"),model/riscv_insts_zicsr.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr7"),model/riscv_insts_zicsr.sail:49)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B8"),model/riscv_insts_zicsr.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr8"),model/riscv_insts_zicsr.sail:50)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B9"),model/riscv_insts_zicsr.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr9"),model/riscv_insts_zicsr.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3BA"),model/riscv_insts_zicsr.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr10"),model/riscv_insts_zicsr.sail:52)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3BB"),model/riscv_insts_zicsr.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr11"),model/riscv_insts_zicsr.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3BC"),model/riscv_insts_zicsr.sail:54)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr12"),model/riscv_insts_zicsr.sail:54)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3BD"),model/riscv_insts_zicsr.sail:55)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr13"),model/riscv_insts_zicsr.sail:55)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3BE"),model/riscv_insts_zicsr.sail:56)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr14"),model/riscv_insts_zicsr.sail:56)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3BF"),model/riscv_insts_zicsr.sail:57)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("pmpaddr15"),model/riscv_insts_zicsr.sail:57)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("B00"),model/riscv_insts_zicsr.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("mcycle"),model/riscv_insts_zicsr.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_zicsr.sail:60)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_zicsr.sail:60)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("B02"),model/riscv_insts_zicsr.sail:61)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("minstret"),model/riscv_insts_zicsr.sail:61)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_zicsr.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_zicsr.sail:61)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("B80"),model/riscv_insts_zicsr.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:62)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("mcycle"),model/riscv_insts_zicsr.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(63),model/riscv_insts_zicsr.sail:62)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:62)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("B82"),model/riscv_insts_zicsr.sail:63)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:63)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("minstret"),model/riscv_insts_zicsr.sail:63)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(63),model/riscv_insts_zicsr.sail:63)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:63)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("7a0"),model/riscv_insts_zicsr.sail:66)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("not_vec"),model/prelude.sail:37),[(E_aux(E_id(Id_aux(Id("tselect"),model/riscv_insts_zicsr.sail:66)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("100"),model/riscv_insts_zicsr.sail:69)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("_get_Sstatus_bits"),:1),[(E_aux(E_app(Id_aux(Id("lower_mstatus"),model/riscv_insts_zicsr.sail:69),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_insts_zicsr.sail:69)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_id(Id_aux(Id("Sstatus"),model/riscv_sys_regs.sail:451)),model/riscv_sys_regs.sail:451)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("102"),model/riscv_insts_zicsr.sail:70)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("_get_Sedeleg_bits"),:1),[(E_aux(E_id(Id_aux(Id("sedeleg"),model/riscv_insts_zicsr.sail:70)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:500)),model/riscv_sys_regs.sail:500)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("103"),model/riscv_insts_zicsr.sail:71)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("_get_Sinterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("sideleg"),model/riscv_insts_zicsr.sail:71)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:575)),model/riscv_sys_regs.sail:575)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("104"),model/riscv_insts_zicsr.sail:72)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("_get_Sinterrupts_bits"),:1),[(E_aux(E_app(Id_aux(Id("lower_mie"),model/riscv_insts_zicsr.sail:72),[(E_aux(E_id(Id_aux(Id("mie"),model/riscv_insts_zicsr.sail:72)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)));(E_aux(E_id(Id_aux(Id("mideleg"),model/riscv_insts_zicsr.sail:72)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:531)),model/riscv_sys_regs.sail:531)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("105"),model/riscv_insts_zicsr.sail:73)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("get_stvec"),model/riscv_insts_zicsr.sail:73),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:73)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("106"),model/riscv_insts_zicsr.sail:74)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_zicsr.sail:74),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Counteren_bits"),:1),[(E_aux(E_id(Id_aux(Id("scounteren"),model/riscv_insts_zicsr.sail:74)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:372)),model/riscv_sys_regs.sail:372)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("140"),model/riscv_insts_zicsr.sail:75)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("sscratch"),model/riscv_insts_zicsr.sail:75)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("141"),model/riscv_insts_zicsr.sail:76)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_app(Id_aux(Id("get_xret_target"),model/riscv_insts_zicsr.sail:76),[(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_insts_zicsr.sail:76)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("pc_alignment_mask"),model/riscv_insts_zicsr.sail:76),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:76)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("142"),model/riscv_insts_zicsr.sail:77)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("_get_Mcause_bits"),:1),[(E_aux(E_id(Id_aux(Id("scause"),model/riscv_insts_zicsr.sail:77)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:581)),model/riscv_sys_regs.sail:581)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("143"),model/riscv_insts_zicsr.sail:78)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("stval"),model/riscv_insts_zicsr.sail:78)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("144"),model/riscv_insts_zicsr.sail:79)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("_get_Sinterrupts_bits"),:1),[(E_aux(E_app(Id_aux(Id("lower_mip"),model/riscv_insts_zicsr.sail:79),[(E_aux(E_id(Id_aux(Id("mip"),model/riscv_insts_zicsr.sail:79)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)));(E_aux(E_id(Id_aux(Id("mideleg"),model/riscv_insts_zicsr.sail:79)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:518)),model/riscv_sys_regs.sail:518)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("180"),model/riscv_insts_zicsr.sail:80)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("satp"),model/riscv_insts_zicsr.sail:80)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("C00"),model/riscv_insts_zicsr.sail:83)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("mcycle"),model/riscv_insts_zicsr.sail:83)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_zicsr.sail:83)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_zicsr.sail:83)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("C01"),model/riscv_insts_zicsr.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("mtime"),model/riscv_insts_zicsr.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_zicsr.sail:84)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_zicsr.sail:84)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("C02"),model/riscv_insts_zicsr.sail:85)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("minstret"),model/riscv_insts_zicsr.sail:85)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_zicsr.sail:85)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_zicsr.sail:85)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),../sail/lib/arith.sail:18),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("C80"),model/riscv_insts_zicsr.sail:86)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:86)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("mcycle"),model/riscv_insts_zicsr.sail:86)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(63),model/riscv_insts_zicsr.sail:86)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:86)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("C81"),model/riscv_insts_zicsr.sail:87)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:87)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("mtime"),model/riscv_insts_zicsr.sail:87)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(63),model/riscv_insts_zicsr.sail:87)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:87)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("C82"),model/riscv_insts_zicsr.sail:88)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:88)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("minstret"),model/riscv_insts_zicsr.sail:88)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(63),model/riscv_insts_zicsr.sail:88)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:88)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(63),Unknown),Nexp_aux(Nexp_constant(32),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_case(E_aux(E_app(Id_aux(Id("ext_read_CSR"),model/riscv_insts_zicsr.sail:91),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:91)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:114),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:92),[(P_aux(P_id(Id_aux(Id("res"),model/riscv_insts_zicsr.sail:92)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:114),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114)),E_aux(E_id(Id_aux(Id("res"),model/riscv_insts_zicsr.sail:92)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_insts_zicsr.sail:93),[(P_aux(P_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:93)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:114),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:114))]),model/riscv_csr_map.sail:114)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("print_bits"),model/riscv_insts_zicsr.sail:93),[(E_aux(E_lit(L_aux(L_string("unhandled read to CSR "),model/riscv_insts_zicsr.sail:93)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:93)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/vector_dec.sail:49)),../sail/lib/vector_dec.sail:49)));(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_zicsr.sail:94),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_hex("0"),model/riscv_insts_zicsr.sail:94)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_reg"),model/riscv_insts_zicsr.sail:97),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:97)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:106)),model/prelude.sail:106)),E_aux(E_app(Id_aux(Id("print_reg"),model/riscv_insts_zicsr.sail:98),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("CSR "),model/riscv_insts_zicsr.sail:98)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("csr_name"),model/riscv_csr_map.sail:97),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:98)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:95)),model/riscv_csr_map.sail:95)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" -> "),model/riscv_insts_zicsr.sail:98)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("res"),model/riscv_insts_zicsr.sail:98)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:101)),model/prelude.sail:101)),E_aux(E_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:98)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_id(Id_aux(Id("res"),model/riscv_insts_zicsr.sail:99)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("writeCSR"),model/riscv_insts_zicsr.sail:102),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_insts_zicsr.sail:102)),model/riscv_insts_zicsr.sail:102));(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_zicsr.sail:102)),model/riscv_insts_zicsr.sail:102))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_zicsr.sail:102)),model/riscv_insts_zicsr.sail:102),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_types.sail:248));(BE_aux(BE_rreg,model/riscv_sys_regs.sail:134));(BE_aux(BE_wreg,model/riscv_sys_regs.sail:134))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_zicsr.sail:102)),model/riscv_insts_zicsr.sail:102)),model/riscv_insts_zicsr.sail:102),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("writeCSR"),model/riscv_insts_zicsr.sail:102),Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("csreg"),model/riscv_insts_zicsr.sail:102)),model/riscv_insts_zicsr.sail:102),P_aux(P_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:102)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_zicsr.sail:102)),model/riscv_insts_zicsr.sail:102),P_aux(P_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:102)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_zicsr.sail:102-172)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_zicsr.sail:103)),model/riscv_insts_zicsr.sail:103)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103),P_aux(P_id(Id_aux(Id("res"),model/riscv_insts_zicsr.sail:103)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:104)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("300"),model/riscv_insts_zicsr.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mstatus"),model/riscv_insts_zicsr.sail:106)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171)),E_aux(E_app(Id_aux(Id("legalize_mstatus"),model/riscv_insts_zicsr.sail:106),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_insts_zicsr.sail:106)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:106)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:171)),model/riscv_sys_regs.sail:171))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:106),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_insts_zicsr.sail:106)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("301"),model/riscv_insts_zicsr.sail:107)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("misa"),model/riscv_insts_zicsr.sail:107)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84)),E_aux(E_app(Id_aux(Id("legalize_misa"),model/riscv_insts_zicsr.sail:107),[(E_aux(E_id(Id_aux(Id("misa"),model/riscv_insts_zicsr.sail:107)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:107)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:84)),model/riscv_sys_regs.sail:84))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:107),[(E_aux(E_app(Id_aux(Id("_get_Misa_bits"),:1),[(E_aux(E_id(Id_aux(Id("misa"),model/riscv_insts_zicsr.sail:107)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("302"),model/riscv_insts_zicsr.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("medeleg"),model/riscv_insts_zicsr.sail:108)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297)),E_aux(E_app(Id_aux(Id("legalize_medeleg"),model/riscv_insts_zicsr.sail:108),[(E_aux(E_id(Id_aux(Id("medeleg"),model/riscv_insts_zicsr.sail:108)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:295)),model/riscv_sys_regs.sail:295)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:108)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:297)),model/riscv_sys_regs.sail:297))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:108),[(E_aux(E_app(Id_aux(Id("_get_Medeleg_bits"),:1),[(E_aux(E_id(Id_aux(Id("medeleg"),model/riscv_insts_zicsr.sail:108)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:295)),model/riscv_sys_regs.sail:295)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("303"),model/riscv_insts_zicsr.sail:109)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mideleg"),model/riscv_insts_zicsr.sail:109)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267)),E_aux(E_app(Id_aux(Id("legalize_mideleg"),model/riscv_insts_zicsr.sail:109),[(E_aux(E_id(Id_aux(Id("mideleg"),model/riscv_insts_zicsr.sail:109)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:109)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:267)),model/riscv_sys_regs.sail:267))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:109),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("mideleg"),model/riscv_insts_zicsr.sail:109)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("304"),model/riscv_insts_zicsr.sail:110)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mie"),model/riscv_insts_zicsr.sail:110)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250)),E_aux(E_app(Id_aux(Id("legalize_mie"),model/riscv_insts_zicsr.sail:110),[(E_aux(E_id(Id_aux(Id("mie"),model/riscv_insts_zicsr.sail:110)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:110)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:250)),model/riscv_sys_regs.sail:250))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:110),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("mie"),model/riscv_insts_zicsr.sail:110)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("305"),model/riscv_insts_zicsr.sail:111)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:111),[(E_aux(E_app(Id_aux(Id("set_mtvec"),model/riscv_insts_zicsr.sail:111),[(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:111)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("306"),model/riscv_insts_zicsr.sail:112)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mcounteren"),model/riscv_insts_zicsr.sail:112)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374)),E_aux(E_app(Id_aux(Id("legalize_mcounteren"),model/riscv_insts_zicsr.sail:112),[(E_aux(E_id(Id_aux(Id("mcounteren"),model/riscv_insts_zicsr.sail:112)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:371)),model/riscv_sys_regs.sail:371)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:112)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:374)),model/riscv_sys_regs.sail:374))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:112),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_zicsr.sail:112),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Counteren_bits"),:1),[(E_aux(E_id(Id_aux(Id("mcounteren"),model/riscv_insts_zicsr.sail:112)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:371)),model/riscv_sys_regs.sail:371)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("340"),model/riscv_insts_zicsr.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mscratch"),model/riscv_insts_zicsr.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:113),[(E_aux(E_id(Id_aux(Id("mscratch"),model/riscv_insts_zicsr.sail:113)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("341"),model/riscv_insts_zicsr.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:114),[(E_aux(E_app(Id_aux(Id("set_xret_target"),model/riscv_insts_zicsr.sail:114),[(E_aux(E_id(Id_aux(Id("Machine"),model/riscv_insts_zicsr.sail:114)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:114)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("342"),model/riscv_insts_zicsr.sail:115)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("_set_Mcause_bits"),:1),[(E_aux(E_ref(Id_aux(Id("mcause"),model/riscv_insts_zicsr.sail:115)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:325)),model/riscv_sys_regs.sail:325)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:115)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:115),[(E_aux(E_app(Id_aux(Id("_get_Mcause_bits"),:1),[(E_aux(E_id(Id_aux(Id("mcause"),model/riscv_insts_zicsr.sail:115)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:325)),model/riscv_sys_regs.sail:325)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("343"),model/riscv_insts_zicsr.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mtval"),model/riscv_insts_zicsr.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:116),[(E_aux(E_id(Id_aux(Id("mtval"),model/riscv_insts_zicsr.sail:116)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("344"),model/riscv_insts_zicsr.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mip"),model/riscv_insts_zicsr.sail:117)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235)),E_aux(E_app(Id_aux(Id("legalize_mip"),model/riscv_insts_zicsr.sail:117),[(E_aux(E_id(Id_aux(Id("mip"),model/riscv_insts_zicsr.sail:117)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:117)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:235)),model/riscv_sys_regs.sail:235))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:117),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("mip"),model/riscv_insts_zicsr.sail:117)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3A0"),model/riscv_insts_zicsr.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("pmpWriteCfgReg"),model/riscv_insts_zicsr.sail:120),[(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_zicsr.sail:120)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:120),[(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:120)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3A1"),model/riscv_insts_zicsr.sail:121)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:121)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("pmpWriteCfgReg"),model/riscv_insts_zicsr.sail:121),[(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_zicsr.sail:121)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:121)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:121),[(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:121)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3A2"),model/riscv_insts_zicsr.sail:122)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("pmpWriteCfgReg"),model/riscv_insts_zicsr.sail:122),[(E_aux(E_lit(L_aux(L_num(2),model/riscv_insts_zicsr.sail:122)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:122)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:122),[(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:122)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3A3"),model/riscv_insts_zicsr.sail:123)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:123)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("pmpWriteCfgReg"),model/riscv_insts_zicsr.sail:123),[(E_aux(E_lit(L_aux(L_num(3),model/riscv_insts_zicsr.sail:123)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:123)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pmp_regs.sail:92)),model/riscv_pmp_regs.sail:92)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:123),[(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:123)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B0"),model/riscv_insts_zicsr.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr0"),model/riscv_insts_zicsr.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:125),[(E_aux(E_id(Id_aux(Id("pmp0cfg"),model/riscv_insts_zicsr.sail:125)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:35)),model/riscv_pmp_regs.sail:35)));(E_aux(E_id(Id_aux(Id("pmpaddr0"),model/riscv_insts_zicsr.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:125),[(E_aux(E_id(Id_aux(Id("pmpaddr0"),model/riscv_insts_zicsr.sail:125)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B1"),model/riscv_insts_zicsr.sail:126)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr1"),model/riscv_insts_zicsr.sail:126)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:126),[(E_aux(E_id(Id_aux(Id("pmp1cfg"),model/riscv_insts_zicsr.sail:126)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:36)),model/riscv_pmp_regs.sail:36)));(E_aux(E_id(Id_aux(Id("pmpaddr1"),model/riscv_insts_zicsr.sail:126)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:126)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:126),[(E_aux(E_id(Id_aux(Id("pmpaddr1"),model/riscv_insts_zicsr.sail:126)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B2"),model/riscv_insts_zicsr.sail:127)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr2"),model/riscv_insts_zicsr.sail:127)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:127),[(E_aux(E_id(Id_aux(Id("pmp2cfg"),model/riscv_insts_zicsr.sail:127)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:37)),model/riscv_pmp_regs.sail:37)));(E_aux(E_id(Id_aux(Id("pmpaddr2"),model/riscv_insts_zicsr.sail:127)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:127)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:127),[(E_aux(E_id(Id_aux(Id("pmpaddr2"),model/riscv_insts_zicsr.sail:127)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B3"),model/riscv_insts_zicsr.sail:128)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr3"),model/riscv_insts_zicsr.sail:128)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:128),[(E_aux(E_id(Id_aux(Id("pmp3cfg"),model/riscv_insts_zicsr.sail:128)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:38)),model/riscv_pmp_regs.sail:38)));(E_aux(E_id(Id_aux(Id("pmpaddr3"),model/riscv_insts_zicsr.sail:128)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:128)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:128),[(E_aux(E_id(Id_aux(Id("pmpaddr3"),model/riscv_insts_zicsr.sail:128)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B4"),model/riscv_insts_zicsr.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr4"),model/riscv_insts_zicsr.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:129),[(E_aux(E_id(Id_aux(Id("pmp4cfg"),model/riscv_insts_zicsr.sail:129)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:39)),model/riscv_pmp_regs.sail:39)));(E_aux(E_id(Id_aux(Id("pmpaddr4"),model/riscv_insts_zicsr.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:129),[(E_aux(E_id(Id_aux(Id("pmpaddr4"),model/riscv_insts_zicsr.sail:129)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B5"),model/riscv_insts_zicsr.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr5"),model/riscv_insts_zicsr.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:130),[(E_aux(E_id(Id_aux(Id("pmp5cfg"),model/riscv_insts_zicsr.sail:130)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:40)),model/riscv_pmp_regs.sail:40)));(E_aux(E_id(Id_aux(Id("pmpaddr5"),model/riscv_insts_zicsr.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:130),[(E_aux(E_id(Id_aux(Id("pmpaddr5"),model/riscv_insts_zicsr.sail:130)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B6"),model/riscv_insts_zicsr.sail:131)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr6"),model/riscv_insts_zicsr.sail:131)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:131),[(E_aux(E_id(Id_aux(Id("pmp6cfg"),model/riscv_insts_zicsr.sail:131)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:41)),model/riscv_pmp_regs.sail:41)));(E_aux(E_id(Id_aux(Id("pmpaddr6"),model/riscv_insts_zicsr.sail:131)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:131)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:131),[(E_aux(E_id(Id_aux(Id("pmpaddr6"),model/riscv_insts_zicsr.sail:131)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B7"),model/riscv_insts_zicsr.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr7"),model/riscv_insts_zicsr.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:132),[(E_aux(E_id(Id_aux(Id("pmp7cfg"),model/riscv_insts_zicsr.sail:132)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:42)),model/riscv_pmp_regs.sail:42)));(E_aux(E_id(Id_aux(Id("pmpaddr7"),model/riscv_insts_zicsr.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:132),[(E_aux(E_id(Id_aux(Id("pmpaddr7"),model/riscv_insts_zicsr.sail:132)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B8"),model/riscv_insts_zicsr.sail:133)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr8"),model/riscv_insts_zicsr.sail:133)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:133),[(E_aux(E_id(Id_aux(Id("pmp8cfg"),model/riscv_insts_zicsr.sail:133)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:43)),model/riscv_pmp_regs.sail:43)));(E_aux(E_id(Id_aux(Id("pmpaddr8"),model/riscv_insts_zicsr.sail:133)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:133)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:133),[(E_aux(E_id(Id_aux(Id("pmpaddr8"),model/riscv_insts_zicsr.sail:133)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3B9"),model/riscv_insts_zicsr.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr9"),model/riscv_insts_zicsr.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:134),[(E_aux(E_id(Id_aux(Id("pmp9cfg"),model/riscv_insts_zicsr.sail:134)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:44)),model/riscv_pmp_regs.sail:44)));(E_aux(E_id(Id_aux(Id("pmpaddr9"),model/riscv_insts_zicsr.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:134),[(E_aux(E_id(Id_aux(Id("pmpaddr9"),model/riscv_insts_zicsr.sail:134)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3BA"),model/riscv_insts_zicsr.sail:135)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr10"),model/riscv_insts_zicsr.sail:135)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:135),[(E_aux(E_id(Id_aux(Id("pmp10cfg"),model/riscv_insts_zicsr.sail:135)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:45)),model/riscv_pmp_regs.sail:45)));(E_aux(E_id(Id_aux(Id("pmpaddr10"),model/riscv_insts_zicsr.sail:135)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:135)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:135),[(E_aux(E_id(Id_aux(Id("pmpaddr10"),model/riscv_insts_zicsr.sail:135)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3BB"),model/riscv_insts_zicsr.sail:136)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr11"),model/riscv_insts_zicsr.sail:136)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:136),[(E_aux(E_id(Id_aux(Id("pmp11cfg"),model/riscv_insts_zicsr.sail:136)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:46)),model/riscv_pmp_regs.sail:46)));(E_aux(E_id(Id_aux(Id("pmpaddr11"),model/riscv_insts_zicsr.sail:136)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:136)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:136),[(E_aux(E_id(Id_aux(Id("pmpaddr11"),model/riscv_insts_zicsr.sail:136)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3BC"),model/riscv_insts_zicsr.sail:137)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr12"),model/riscv_insts_zicsr.sail:137)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:137),[(E_aux(E_id(Id_aux(Id("pmp12cfg"),model/riscv_insts_zicsr.sail:137)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:47)),model/riscv_pmp_regs.sail:47)));(E_aux(E_id(Id_aux(Id("pmpaddr12"),model/riscv_insts_zicsr.sail:137)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:137)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:137),[(E_aux(E_id(Id_aux(Id("pmpaddr12"),model/riscv_insts_zicsr.sail:137)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3BD"),model/riscv_insts_zicsr.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr13"),model/riscv_insts_zicsr.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:138),[(E_aux(E_id(Id_aux(Id("pmp13cfg"),model/riscv_insts_zicsr.sail:138)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:48)),model/riscv_pmp_regs.sail:48)));(E_aux(E_id(Id_aux(Id("pmpaddr13"),model/riscv_insts_zicsr.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:138),[(E_aux(E_id(Id_aux(Id("pmpaddr13"),model/riscv_insts_zicsr.sail:138)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3BE"),model/riscv_insts_zicsr.sail:139)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr14"),model/riscv_insts_zicsr.sail:139)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:139),[(E_aux(E_id(Id_aux(Id("pmp14cfg"),model/riscv_insts_zicsr.sail:139)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:49)),model/riscv_pmp_regs.sail:49)));(E_aux(E_id(Id_aux(Id("pmpaddr14"),model/riscv_insts_zicsr.sail:139)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:139)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:139),[(E_aux(E_id(Id_aux(Id("pmpaddr14"),model/riscv_insts_zicsr.sail:139)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("3BF"),model/riscv_insts_zicsr.sail:140)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("pmpaddr15"),model/riscv_insts_zicsr.sail:140)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("pmpWriteAddr"),model/riscv_insts_zicsr.sail:140),[(E_aux(E_id(Id_aux(Id("pmp15cfg"),model/riscv_insts_zicsr.sail:140)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:50)),model/riscv_pmp_regs.sail:50)));(E_aux(E_id(Id_aux(Id("pmpaddr15"),model/riscv_insts_zicsr.sail:140)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:140)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:140),[(E_aux(E_id(Id_aux(Id("pmpaddr15"),model/riscv_insts_zicsr.sail:140)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("B00"),model/riscv_insts_zicsr.sail:143)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_vector_range(LEXP_aux(LEXP_id(Id_aux(Id("mcycle"),model/riscv_insts_zicsr.sail:143)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_zicsr.sail:143)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)),E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_zicsr.sail:143)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:143)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:143),[(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:143)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("B02"),model/riscv_insts_zicsr.sail:144)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_vector_range(LEXP_aux(LEXP_id(Id_aux(Id("minstret"),model/riscv_insts_zicsr.sail:144)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("sub_atom"),../sail/lib/arith.sail:22),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_insts_zicsr.sail:144)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:18),[(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(64),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:18)),../sail/lib/arith.sail:18))]),../sail/lib/arith.sail:18)),E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_zicsr.sail:144)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:144)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("minstret_written"),model/riscv_insts_zicsr.sail:144)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_true,model/riscv_insts_zicsr.sail:144)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:144),[(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:144)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("B80"),model/riscv_insts_zicsr.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:145)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_vector_range(LEXP_aux(LEXP_id(Id_aux(Id("mcycle"),model/riscv_insts_zicsr.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_num(63),model/riscv_insts_zicsr.sail:145)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:145)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:145),[(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:145)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("B82"),model/riscv_insts_zicsr.sail:146)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_vector_range(LEXP_aux(LEXP_id(Id_aux(Id("minstret"),model/riscv_insts_zicsr.sail:146)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_num(63),model/riscv_insts_zicsr.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(63),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(32),model/riscv_insts_zicsr.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),Unknown))]),Unknown)),E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:146)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("minstret_written"),model/riscv_insts_zicsr.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_true,model/riscv_insts_zicsr.sail:146)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:146),[(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:146)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("7a0"),model/riscv_insts_zicsr.sail:149)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("tselect"),model/riscv_insts_zicsr.sail:149)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:149)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:149),[(E_aux(E_id(Id_aux(Id("tselect"),model/riscv_insts_zicsr.sail:149)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("100"),model/riscv_insts_zicsr.sail:152)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mstatus"),model/riscv_insts_zicsr.sail:152)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485)),E_aux(E_app(Id_aux(Id("legalize_sstatus"),model/riscv_insts_zicsr.sail:152),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_insts_zicsr.sail:152)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:152)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:485)),model/riscv_sys_regs.sail:485))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:152),[(E_aux(E_app(Id_aux(Id("_get_Mstatus_bits"),:1),[(E_aux(E_id(Id_aux(Id("mstatus"),model/riscv_insts_zicsr.sail:152)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("102"),model/riscv_insts_zicsr.sail:153)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("sedeleg"),model/riscv_insts_zicsr.sail:153)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:502)),model/riscv_sys_regs.sail:502)),E_aux(E_app(Id_aux(Id("legalize_sedeleg"),model/riscv_insts_zicsr.sail:153),[(E_aux(E_id(Id_aux(Id("sedeleg"),model/riscv_insts_zicsr.sail:153)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:500)),model/riscv_sys_regs.sail:500)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:153)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:502)),model/riscv_sys_regs.sail:502))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:153),[(E_aux(E_app(Id_aux(Id("_get_Sedeleg_bits"),:1),[(E_aux(E_id(Id_aux(Id("sedeleg"),model/riscv_insts_zicsr.sail:153)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:500)),model/riscv_sys_regs.sail:500)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("103"),model/riscv_insts_zicsr.sail:154)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("_set_Sinterrupts_bits"),:1),[(E_aux(E_ref(Id_aux(Id("sideleg"),model/riscv_insts_zicsr.sail:154)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:575)),model/riscv_sys_regs.sail:575)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:154)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:154),[(E_aux(E_app(Id_aux(Id("_get_Sinterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("sideleg"),model/riscv_insts_zicsr.sail:154)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:575)),model/riscv_sys_regs.sail:575)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("104"),model/riscv_insts_zicsr.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mie"),model/riscv_insts_zicsr.sail:155)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571)),E_aux(E_app(Id_aux(Id("legalize_sie"),model/riscv_insts_zicsr.sail:155),[(E_aux(E_id(Id_aux(Id("mie"),model/riscv_insts_zicsr.sail:155)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)));(E_aux(E_id(Id_aux(Id("mideleg"),model/riscv_insts_zicsr.sail:155)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:155)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:571)),model/riscv_sys_regs.sail:571))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:155),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("mie"),model/riscv_insts_zicsr.sail:155)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("105"),model/riscv_insts_zicsr.sail:156)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:156),[(E_aux(E_app(Id_aux(Id("set_stvec"),model/riscv_insts_zicsr.sail:156),[(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:156)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("106"),model/riscv_insts_zicsr.sail:157)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("scounteren"),model/riscv_insts_zicsr.sail:157)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382)),E_aux(E_app(Id_aux(Id("legalize_scounteren"),model/riscv_insts_zicsr.sail:157),[(E_aux(E_id(Id_aux(Id("scounteren"),model/riscv_insts_zicsr.sail:157)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:372)),model/riscv_sys_regs.sail:372)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:157)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:382)),model/riscv_sys_regs.sail:382))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:157),[(E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_zicsr.sail:157),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_app(Id_aux(Id("_get_Counteren_bits"),:1),[(E_aux(E_id(Id_aux(Id("scounteren"),model/riscv_insts_zicsr.sail:157)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:372)),model/riscv_sys_regs.sail:372)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("140"),model/riscv_insts_zicsr.sail:158)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("sscratch"),model/riscv_insts_zicsr.sail:158)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:158)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:158),[(E_aux(E_id(Id_aux(Id("sscratch"),model/riscv_insts_zicsr.sail:158)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("141"),model/riscv_insts_zicsr.sail:159)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:159),[(E_aux(E_app(Id_aux(Id("set_xret_target"),model/riscv_insts_zicsr.sail:159),[(E_aux(E_id(Id_aux(Id("Supervisor"),model/riscv_insts_zicsr.sail:159)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:159)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("142"),model/riscv_insts_zicsr.sail:160)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("_set_Mcause_bits"),:1),[(E_aux(E_ref(Id_aux(Id("scause"),model/riscv_insts_zicsr.sail:160)),Typ_aux(Typ_app(Id_aux(Id("register"),Unknown),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:581)),model/riscv_sys_regs.sail:581)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:160)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:160),[(E_aux(E_app(Id_aux(Id("_get_Mcause_bits"),:1),[(E_aux(E_id(Id_aux(Id("scause"),model/riscv_insts_zicsr.sail:160)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:581)),model/riscv_sys_regs.sail:581)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("143"),model/riscv_insts_zicsr.sail:161)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("stval"),model/riscv_insts_zicsr.sail:161)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:161)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:161),[(E_aux(E_id(Id_aux(Id("stval"),model/riscv_insts_zicsr.sail:161)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("144"),model/riscv_insts_zicsr.sail:162)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("mip"),model/riscv_insts_zicsr.sail:162)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553)),E_aux(E_app(Id_aux(Id("legalize_sip"),model/riscv_insts_zicsr.sail:162),[(E_aux(E_id(Id_aux(Id("mip"),model/riscv_insts_zicsr.sail:162)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)));(E_aux(E_id(Id_aux(Id("mideleg"),model/riscv_insts_zicsr.sail:162)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:162)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:553)),model/riscv_sys_regs.sail:553))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:162),[(E_aux(E_app(Id_aux(Id("_get_Minterrupts_bits"),:1),[(E_aux(E_id(Id_aux(Id("mip"),model/riscv_insts_zicsr.sail:162)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),:1),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),:1)),:1));(A_aux(A_order(Ord_aux(Ord_dec,:1)),:1))]),:1)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_hex("180"),model/riscv_insts_zicsr.sail:163)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("satp"),model/riscv_insts_zicsr.sail:163)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("legalize_satp"),model/riscv_insts_zicsr.sail:163),[(E_aux(E_app(Id_aux(Id("cur_Architecture"),model/riscv_insts_zicsr.sail:163),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:163)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Architecture"),model/riscv_sys_regs.sail:199)),model/riscv_sys_regs.sail:199)));(E_aux(E_id(Id_aux(Id("satp"),model/riscv_insts_zicsr.sail:163)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:163)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:163),[(E_aux(E_id(Id_aux(Id("satp"),model/riscv_insts_zicsr.sail:163)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),../sail/lib/option.sail:9),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("ext_write_CSR"),model/riscv_insts_zicsr.sail:165),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:165)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_csr_map.sail:118),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_csr_map.sail:118))]),model/riscv_csr_map.sail:118))),None))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("res"),model/riscv_insts_zicsr.sail:167)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_insts_zicsr.sail:168),[(P_aux(P_id(Id_aux(Id("v"),model/riscv_insts_zicsr.sail:168)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103)),E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_reg"),model/riscv_insts_zicsr.sail:168),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:168)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:106)),model/prelude.sail:106)),E_aux(E_app(Id_aux(Id("print_reg"),model/riscv_insts_zicsr.sail:169),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("CSR "),model/riscv_insts_zicsr.sail:169)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("csr_name"),model/riscv_csr_map.sail:97),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:169)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:95)),model/riscv_csr_map.sail:95)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" <- "),model/riscv_insts_zicsr.sail:169)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("v"),model/riscv_insts_zicsr.sail:169)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" (input: "),model/riscv_insts_zicsr.sail:169)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("value"),model/riscv_insts_zicsr.sail:169)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_lit(L_aux(L_string(")"),model/riscv_insts_zicsr.sail:169)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:101)),model/prelude.sail:101)),E_aux(E_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:169)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_zicsr.sail:102)),model/riscv_insts_zicsr.sail:102))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_insts_zicsr.sail:170),[(P_aux(P_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:170)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_insts_zicsr.sail:103),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_zicsr.sail:103))]),model/riscv_insts_zicsr.sail:103)),E_aux(E_app(Id_aux(Id("print_bits"),model/riscv_insts_zicsr.sail:170),[(E_aux(E_lit(L_aux(L_string("unhandled write to CSR "),model/riscv_insts_zicsr.sail:170)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:170)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/vector_dec.sail:49)),../sail/lib/vector_dec.sail:49))),None))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_zicsr.sail:102)),model/riscv_insts_zicsr.sail:102)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_zicsr.sail:102)),model/riscv_insts_zicsr.sail:102))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_zicsr.sail:102)),model/riscv_insts_zicsr.sail:102)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_zicsr.sail:102)),model/riscv_insts_zicsr.sail:102))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_zicsr.sail:102)),model/riscv_insts_zicsr.sail:102),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_zicsr.sail:174),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("CSR"),model/riscv_insts_zicsr.sail:174),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_insts_zicsr.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_insts_zicsr.sail:174)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("is_imm"),model/riscv_insts_zicsr.sail:174)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11672#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_insts_zicsr.sail:174)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5));(Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5))]),model/riscv_insts_zicsr.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_zicsr.sail:175)),model/riscv_insts_zicsr.sail:175),P_aux(P_id(Id_aux(Id("rs1_val"),model/riscv_insts_zicsr.sail:175)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_if(E_aux(E_id(Id_aux(Id("is_imm"),model/riscv_insts_zicsr.sail:175)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11672#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("EXTZ"),model/riscv_insts_zicsr.sail:175),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_zicsr.sail:175)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_zicsr.sail:175)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_zicsr.sail:176)),model/riscv_insts_zicsr.sail:176),P_aux(P_id(Id_aux(Id("isWrite"),model/riscv_insts_zicsr.sail:176)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11698#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_zicsr.sail:176)),model/riscv_insts_zicsr.sail:176)),E_aux(E_case(E_aux(E_id(Id_aux(Id("op"),model/riscv_insts_zicsr.sail:176)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("CSRRW"),model/riscv_insts_zicsr.sail:177)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)),E_aux(E_lit(L_aux(L_true,model/riscv_insts_zicsr.sail:177)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)),E_aux(E_if(E_aux(E_id(Id_aux(Id("is_imm"),model/riscv_insts_zicsr.sail:178)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11672#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("neq_int"),../sail/lib/flow.sail:44),[(E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_zicsr.sail:178),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_zicsr.sail:178)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_zicsr.sail:178)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex11689#"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_var(Kid_aux(Var("'ex11689#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex11689#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_not_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex11689#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/flow.sail:32)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("neq_int"),../sail/lib/flow.sail:44),[(E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_insts_zicsr.sail:178),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_insts_zicsr.sail:178)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_insts_zicsr.sail:178)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex11693#"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_var(Kid_aux(Var("'ex11693#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex11693#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_not_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex11693#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/flow.sail:32)),Unknown))]),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_zicsr.sail:176)),model/riscv_insts_zicsr.sail:176))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_zicsr.sail:176)),model/riscv_insts_zicsr.sail:176))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("check_CSR"),model/riscv_insts_zicsr.sail:180),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:180)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_insts_zicsr.sail:180)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)));(E_aux(E_id(Id_aux(Id("isWrite"),model/riscv_insts_zicsr.sail:180)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11698#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_control.sail:118)),model/riscv_sys_control.sail:118)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex11699#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11699#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_zicsr.sail:181),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:181)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_zicsr.sail:181)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("ext_check_CSR"),model/riscv_insts_zicsr.sail:182),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:182)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_insts_zicsr.sail:182)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)));(E_aux(E_id(Id_aux(Id("isWrite"),model/riscv_insts_zicsr.sail:182)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11698#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_ext_regs.sail:21)),model/riscv_ext_regs.sail:21)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex11702#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11702#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("ext_check_CSR_fail"),model/riscv_insts_zicsr.sail:183),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:183)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ext_regs.sail:28)),model/riscv_ext_regs.sail:28)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_zicsr.sail:183)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("csr_val"),model/riscv_insts_zicsr.sail:185)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("readCSR"),model/riscv_insts_zicsr.sail:185),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:185)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_id(Id_aux(Id("isWrite"),model/riscv_insts_zicsr.sail:186)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11698#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_insts_zicsr.sail:187)),model/riscv_insts_zicsr.sail:187),P_aux(P_id(Id_aux(Id("new_val"),model/riscv_insts_zicsr.sail:187)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_case(E_aux(E_id(Id_aux(Id("op"),model/riscv_insts_zicsr.sail:187)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("CSRRW"),model/riscv_insts_zicsr.sail:188)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)),E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_zicsr.sail:188)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("CSRRS"),model/riscv_insts_zicsr.sail:189)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)),E_aux(E_app(Id_aux(Id("or_vec"),../sail/lib/vector_dec.sail:174),[(E_aux(E_id(Id_aux(Id("csr_val"),model/riscv_insts_zicsr.sail:189)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_zicsr.sail:189)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("CSRRC"),model/riscv_insts_zicsr.sail:190)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)),E_aux(E_app(Id_aux(Id("and_vec"),../sail/lib/vector_dec.sail:164),[(E_aux(E_id(Id_aux(Id("csr_val"),model/riscv_insts_zicsr.sail:190)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("not_vec"),model/prelude.sail:37),[(E_aux(E_id(Id_aux(Id("rs1_val"),model/riscv_insts_zicsr.sail:190)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("writeCSR"),model/riscv_insts_zicsr.sail:192),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:192)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("new_val"),model/riscv_insts_zicsr.sail:192)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_zicsr.sail:102)),model/riscv_insts_zicsr.sail:102)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:193)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_insts_zicsr.sail:194)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("csr_val"),model/riscv_insts_zicsr.sail:194)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_insts_zicsr.sail:195)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("maybe_i"),model/riscv_insts_zicsr.sail:199),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_zicsr.sail:199)),model/riscv_insts_zicsr.sail:199),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_zicsr.sail:199)),model/riscv_insts_zicsr.sail:199)),model/riscv_insts_zicsr.sail:199)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("maybe_i"),model/riscv_insts_zicsr.sail:199),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_zicsr.sail:199)),model/riscv_insts_zicsr.sail:199),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_zicsr.sail:199)),model/riscv_insts_zicsr.sail:199)),model/riscv_insts_zicsr.sail:199)),model/riscv_insts_zicsr.sail:199),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_zicsr.sail:200)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("i"),model/riscv_insts_zicsr.sail:200)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_zicsr.sail:199)),model/riscv_insts_zicsr.sail:199),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_zicsr.sail:199)),model/riscv_insts_zicsr.sail:199)),model/riscv_insts_zicsr.sail:199)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_zicsr.sail:201)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string(""),model/riscv_insts_zicsr.sail:201)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_zicsr.sail:199)),model/riscv_insts_zicsr.sail:199),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_zicsr.sail:199)),model/riscv_insts_zicsr.sail:199)),model/riscv_insts_zicsr.sail:199)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("csr_mnemonic"),model/riscv_insts_zicsr.sail:204),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204)),Unknown))));(DEF_mapdef(MD_aux(MD_mapping(Id_aux(Id("csr_mnemonic"),model/riscv_insts_zicsr.sail:204),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204),[(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("CSRRW"),model/riscv_insts_zicsr.sail:205)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("csrrw"),model/riscv_insts_zicsr.sail:205)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("CSRRS"),model/riscv_insts_zicsr.sail:206)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("csrrs"),model/riscv_insts_zicsr.sail:206)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204)));(MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("CSRRC"),model/riscv_insts_zicsr.sail:207)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("csrrc"),model/riscv_insts_zicsr.sail:207)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204)))]),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_zicsr.sail:210),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("CSR"),model/riscv_insts_zicsr.sail:210),[(MP_aux(MP_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:210)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_zicsr.sail:210)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_zicsr.sail:210)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_true,model/riscv_insts_zicsr.sail:210)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_zicsr.sail:210)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_app(Id_aux(Id("csr_mnemonic"),model/riscv_insts_zicsr.sail:211),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_zicsr.sail:211)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_lit(L_aux(L_string("i"),model/riscv_insts_zicsr.sail:211)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_zicsr.sail:211),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:211)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_zicsr.sail:211),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_zicsr.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_zicsr.sail:211),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:211)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_5"),model/riscv_insts_zicsr.sail:211),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_zicsr.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/prelude_mapping.sail:110)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_zicsr.sail:211),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:211)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("csr_name_map"),model/riscv_insts_zicsr.sail:211),[(MP_aux(MP_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_zicsr.sail:212),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("CSR"),model/riscv_insts_zicsr.sail:212),[(MP_aux(MP_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:212)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_zicsr.sail:212)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_zicsr.sail:212)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(MP_aux(MP_lit(L_aux(L_false,model/riscv_insts_zicsr.sail:212)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_zicsr.sail:212)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_app(Id_aux(Id("csr_mnemonic"),model/riscv_insts_zicsr.sail:213),[(MP_aux(MP_id(Id_aux(Id("op"),model/riscv_insts_zicsr.sail:213)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:204)),model/riscv_insts_zicsr.sail:204)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_zicsr.sail:213),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:213)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_zicsr.sail:213),[(MP_aux(MP_id(Id_aux(Id("rd"),model/riscv_insts_zicsr.sail:213)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_zicsr.sail:213),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:213)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("reg_name"),model/riscv_insts_zicsr.sail:213),[(MP_aux(MP_id(Id_aux(Id("rs1"),model/riscv_insts_zicsr.sail:213)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_regs.sail:195)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("sep"),model/riscv_insts_zicsr.sail:213),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_zicsr.sail:213)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("csr_name_map"),model/riscv_insts_zicsr.sail:213),[(MP_aux(MP_id(Id_aux(Id("csr"),model/riscv_insts_zicsr.sail:213)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_types.sail:19)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_next.sail:4),Tu_aux(Tu_ty_id(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_insts_next.sail:4)),model/riscv_insts_next.sail:4),Id_aux(Id("URET"),model/riscv_insts_next.sail:4)),model/riscv_insts_next.sail:4)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_next.sail:6),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("URET"),model/riscv_insts_next.sail:6),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_next.sail:6)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_vector_concat([(MP_aux(MP_lit(L_aux(L_bin("0000000"),model/riscv_insts_next.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00010"),model/riscv_insts_next.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_next.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("000"),model/riscv_insts_next.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(3),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("00000"),model/riscv_insts_next.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(MP_aux(MP_lit(L_aux(L_bin("1110011"),model/riscv_insts_next.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(7),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_next.sail:9),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("URET"),model/riscv_insts_next.sail:9),[(P_aux(P_lit(L_aux(L_unit,model/riscv_insts_next.sail:9)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("haveUsrMode"),model/riscv_insts_next.sail:10),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_next.sail:10)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:102)),model/riscv_sys_regs.sail:102)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex11743#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11743#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_next.sail:11),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_next.sail:11)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)),E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("ext_check_xret_priv"),model/riscv_insts_next.sail:12),[(E_aux(E_id(Id_aux(Id("User"),model/riscv_insts_next.sail:12)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_types.sail:66)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_exceptions.sail:6)),model/riscv_sys_exceptions.sail:6)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex11746#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11746#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("ext_fail_xret_priv"),model/riscv_insts_next.sail:13),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_next.sail:13)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_exceptions.sail:8)),model/riscv_sys_exceptions.sail:8)),E_aux(E_app(Id_aux(Id("set_next_pc"),model/riscv_insts_next.sail:14),[(E_aux(E_app(Id_aux(Id("exception_handler"),model/riscv_insts_next.sail:14),[(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_insts_next.sail:14)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)));(E_aux(E_app(Id_aux(Id("CTL_URET"),model/riscv_insts_next.sail:14),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_next.sail:14)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ctl_result"),model/riscv_sys_control.sail:268),[]),Unknown)));(E_aux(E_id(Id_aux(Id("PC"),model/riscv_insts_next.sail:14)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_next.sail:15)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_next.sail:18),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("URET"),model/riscv_insts_next.sail:18),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_next.sail:18)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_lit(L_aux(L_string("uret"),model/riscv_insts_next.sail:18)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_jalr_seq.sail:3),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("RISCV_JALR"),model/riscv_jalr_seq.sail:3),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_jalr_seq.sail:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_jalr_seq.sail:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_jalr_seq.sail:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:81)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_jalr_seq.sail:10)),model/riscv_jalr_seq.sail:10),P_aux(P_id(Id_aux(Id("t"),model/riscv_jalr_seq.sail:10)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_app(Id_aux(Id("rX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_jalr_seq.sail:10)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_jalr_seq.sail:10),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("imm"),model/riscv_jalr_seq.sail:10)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("ext_control_check_addr"),model/riscv_jalr_seq.sail:12),[(E_aux(E_id(Id_aux(Id("t"),model/riscv_jalr_seq.sail:12)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks.sail:32),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:32))]),model/riscv_addr_checks.sail:32)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_ControlAddr_Error"),model/riscv_jalr_seq.sail:13),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_jalr_seq.sail:13)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks_common.sail:16)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks.sail:32),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:32))]),model/riscv_addr_checks.sail:32)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("ext_handle_control_check_error"),model/riscv_jalr_seq.sail:14),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_jalr_seq.sail:14)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks_common.sail:16)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:39)),model/riscv_addr_checks.sail:39)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_jalr_seq.sail:15)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_ControlAddr_OK"),model/riscv_jalr_seq.sail:17),[(P_aux(P_id(Id_aux(Id("addr"),model/riscv_jalr_seq.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_ControlAddr_Check"),model/riscv_addr_checks.sail:32),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:20)),model/riscv_addr_checks.sail:32))]),model/riscv_addr_checks.sail:32)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("target"),model/riscv_jalr_seq.sail:18)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("bitvector_update"),../sail/lib/vector_dec.sail:127),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_jalr_seq.sail:18)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_jalr_seq.sail:18)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_zero,model/riscv_jalr_seq.sail:18)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("bit_to_bool"),model/riscv_jalr_seq.sail:19),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("target"),model/riscv_jalr_seq.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_jalr_seq.sail:19)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:132)),model/prelude.sail:132)));(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("haveRVC"),model/riscv_jalr_seq.sail:19),[(E_aux(E_lit(L_aux(L_unit,model/riscv_jalr_seq.sail:19)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:99)),model/riscv_sys_regs.sail:99)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex11774#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11774#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex11777#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex11776#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex11777#"),Unknown)),Unknown),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11776#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_jalr_seq.sail:20),[(E_aux(E_id(Id_aux(Id("target"),model/riscv_jalr_seq.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("E_Fetch_Addr_Align"),model/riscv_jalr_seq.sail:20),[(E_aux(E_lit(L_aux(L_unit,model/riscv_jalr_seq.sail:20)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_jalr_seq.sail:21)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("wX_bits"),model/riscv_regs.sail:148),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_jalr_seq.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("get_next_pc"),model/riscv_jalr_seq.sail:23),[(E_aux(E_lit(L_aux(L_unit,model/riscv_jalr_seq.sail:23)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_regs.sail:144)),model/riscv_regs.sail:144)));(E_aux(E_app(Id_aux(Id("set_next_pc"),model/riscv_jalr_seq.sail:24),[(E_aux(E_id(Id_aux(Id("target"),model/riscv_jalr_seq.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:15)),model/riscv_pc_access.sail:15)));(E_aux(E_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_jalr_seq.sail:25)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_end.sail:5),Tu_aux(Tu_ty_id(Typ_aux(Typ_id(Id_aux(Id("word"),model/riscv_insts_end.sail:5)),model/riscv_insts_end.sail:5),Id_aux(Id("ILLEGAL"),model/riscv_insts_end.sail:5)),model/riscv_insts_end.sail:5)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec"),model/riscv_insts_end.sail:7),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("ILLEGAL"),model/riscv_insts_end.sail:7),[(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_end.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_types.sail:13)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None),MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_end.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_begin.sail:15)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:15))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_end.sail:9),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("ILLEGAL"),model/riscv_insts_end.sail:9),[(P_aux(P_id(Id_aux(Id("s"),model/riscv_insts_end.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_types.sail:13)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_end.sail:9),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_end.sail:9)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_end.sail:9)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_end.sail:11),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("ILLEGAL"),model/riscv_insts_end.sail:11),[(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_end.sail:11)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_types.sail:13)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("illegal"),model/riscv_insts_end.sail:11)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_end.sail:11),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_end.sail:11)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_32"),model/riscv_insts_end.sail:11),[(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_end.sail:11)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/prelude_mapping.sail:623)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_scattered(SD_aux(SD_unioncl(Id_aux(Id("ast"),model/riscv_insts_end.sail:15),Tu_aux(Tu_ty_id(Typ_aux(Typ_id(Id_aux(Id("half"),model/riscv_insts_end.sail:15)),model/riscv_insts_end.sail:15),Id_aux(Id("C_ILLEGAL"),model/riscv_insts_end.sail:15)),model/riscv_insts_end.sail:15)),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("encdec_compressed"),model/riscv_insts_end.sail:17),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_ILLEGAL"),model/riscv_insts_end.sail:17),[(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_end.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_types.sail:12)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))),None),MPat_aux(MPat_pat(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_end.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_begin.sail:18)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_insts_begin.sail:18))),None)));(DEF_scattered(SD_aux(SD_funcl(FCL_aux(FCL_Funcl(Id_aux(Id("execute"),model/riscv_insts_end.sail:19),Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("C_ILLEGAL"),model/riscv_insts_end.sail:19),[(P_aux(P_id(Id_aux(Id("s"),model/riscv_insts_end.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_types.sail:12)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_insts_end.sail:19),[(E_aux(E_lit(L_aux(L_unit,model/riscv_insts_end.sail:19)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_insts_end.sail:19)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))],Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9))]),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9))),None)));(DEF_scattered(SD_aux(SD_mapcl(Id_aux(Id("assembly"),model/riscv_insts_end.sail:21),MCL_aux(MCL_bidir(MPat_aux(MPat_pat(MP_aux(MP_app(Id_aux(Id("C_ILLEGAL"),model/riscv_insts_end.sail:21),[(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_end.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_types.sail:12)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None),MPat_aux(MPat_pat(MP_aux(MP_string_append([(MP_aux(MP_lit(L_aux(L_string("c.illegal"),model/riscv_insts_end.sail:21)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(MP_aux(MP_app(Id_aux(Id("spc"),model/riscv_insts_end.sail:21),[(MP_aux(MP_lit(L_aux(L_unit,model/riscv_insts_end.sail:21)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)));(MP_aux(MP_app(Id_aux(Id("hex_bits_16"),model/riscv_insts_end.sail:21),[(MP_aux(MP_id(Id_aux(Id("s"),model/riscv_insts_end.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/prelude_mapping.sail:319)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_bidir(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("print_insn"),model/riscv_insts_end.sail:32),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:32)),model/riscv_insts_end.sail:32))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_end.sail:32)),model/riscv_insts_end.sail:32),Effect_aux(Effect_set([]),model/riscv_insts_end.sail:32)),model/riscv_insts_end.sail:32)),model/riscv_insts_end.sail:32))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("print_insn"),model/riscv_insts_end.sail:33),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("insn"),model/riscv_insts_end.sail:33)),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:32)),model/riscv_insts_end.sail:32)),E_aux(E_app(Id_aux(Id("assembly_forwards"),Unknown),[(E_aux(E_id(Id_aux(Id("insn"),model/riscv_insts_end.sail:33)),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:32)),model/riscv_insts_end.sail:32)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_begin.sail:12)),model/riscv_insts_begin.sail:12))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:32)),model/riscv_insts_end.sail:32))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_end.sail:32)),model/riscv_insts_end.sail:32),Effect_aux(Effect_set([]),model/riscv_insts_end.sail:32)),model/riscv_insts_end.sail:32)))]),None)));(DEF_overload(Id_aux(Id("to_str"),model/riscv_insts_end.sail:35),[(Id_aux(Id("print_insn"),model/riscv_insts_end.sail:35))]));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("decode"),model/riscv_insts_end.sail:37),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_end.sail:37)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:37)),model/riscv_insts_end.sail:37),Effect_aux(Effect_set([]),model/riscv_insts_end.sail:37)),model/riscv_insts_end.sail:37)),model/riscv_insts_end.sail:37))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("decode"),model/riscv_insts_end.sail:38),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/riscv_insts_end.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_end.sail:37)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("encdec_backwards"),Unknown),[(E_aux(E_id(Id_aux(Id("bv"),model/riscv_insts_end.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_end.sail:37)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:15)),model/riscv_insts_begin.sail:15))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_insts_end.sail:37)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:37)),model/riscv_insts_end.sail:37),Effect_aux(Effect_set([]),model/riscv_insts_end.sail:37)),model/riscv_insts_end.sail:37)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("decodeCompressed"),model/riscv_insts_end.sail:40),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_end.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:40)),model/riscv_insts_end.sail:40),Effect_aux(Effect_set([]),model/riscv_insts_end.sail:40)),model/riscv_insts_end.sail:40)),model/riscv_insts_end.sail:40))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("decodeCompressed"),model/riscv_insts_end.sail:41),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("bv"),model/riscv_insts_end.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_end.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("encdec_compressed_backwards"),Unknown),[(E_aux(E_id(Id_aux(Id("bv"),model/riscv_insts_end.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_end.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_begin.sail:18)),model/riscv_insts_begin.sail:18))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_insts_end.sail:40)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:40)),model/riscv_insts_end.sail:40),Effect_aux(Effect_set([]),model/riscv_insts_end.sail:40)),model/riscv_insts_end.sail:40)))]),None)));(DEF_type(..type_def));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("undefined_FetchResult"),model/riscv_step_common.sail:5),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_tq([]),model/riscv_step_common.sail:5),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("undefined_FetchResult"),model/riscv_step_common.sail:5),Pat_aux(Pat_exp(P_aux(P_tup([]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_step_common.sail:9)),model/riscv_step_common.sail:9),P_aux(P_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_step_common.sail:9)),model/riscv_step_common.sail:9))),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_step_common.sail:9)),model/riscv_step_common.sail:9)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_step_common.sail:9)),model/riscv_step_common.sail:9))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ext_fetch_addr_error"),model/riscv_step_common.sail:6)),model/riscv_step_common.sail:6),P_aux(P_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("half"),model/riscv_step_common.sail:8)),model/riscv_step_common.sail:8),P_aux(P_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_types.sail:12)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_types.sail:12)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_types.sail:12)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("word"),model/riscv_step_common.sail:7)),model/riscv_step_common.sail:7),P_aux(P_id(Id_aux(Id("u_3"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_types.sail:13)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_types.sail:13)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_types.sail:13)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_step_common.sail:9)),model/riscv_step_common.sail:9),P_aux(P_id(Id_aux(Id("u_4"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_app(Id_aux(Id("internal_pick"),Unknown),[(E_aux(E_list([(E_aux(E_app(Id_aux(Id("F_Ext_Error"),model/riscv_step_common.sail:6),[(E_aux(E_id(Id_aux(Id("u_1"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3)))]),Typ_aux(Typ_app(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5),[]),Unknown)));(E_aux(E_app(Id_aux(Id("F_Base"),model/riscv_step_common.sail:7),[(E_aux(E_id(Id_aux(Id("u_3"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_types.sail:13)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5),[]),Unknown)));(E_aux(E_app(Id_aux(Id("F_RVC"),model/riscv_step_common.sail:8),[(E_aux(E_id(Id_aux(Id("u_2"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_types.sail:12)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5),[]),Unknown)));(E_aux(E_app(Id_aux(Id("F_Error"),model/riscv_step_common.sail:9),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("u_0"),Unknown)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_step_common.sail:9)),model/riscv_step_common.sail:9)));(E_aux(E_id(Id_aux(Id("u_4"),Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_step_common.sail:9)),model/riscv_step_common.sail:9));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_step_common.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),:1),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5)),:1)),:1))]),:1)))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5)),:1))),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5)),Unknown),Effect_aux(Effect_set([(BE_aux(BE_undef,Unknown))]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_init"),model/riscv_step_ext.sail:3),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step_ext.sail:3)),model/riscv_step_ext.sail:3),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step_ext.sail:3)),model/riscv_step_ext.sail:3)),model/riscv_step_ext.sail:3),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_init"),model/riscv_step_ext.sail:3),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_step_ext.sail:3)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_step_ext.sail:3)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step_ext.sail:3)),model/riscv_step_ext.sail:3),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_fetch_hook"),model/riscv_step_ext.sail:5),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_ext.sail:5)),model/riscv_step_ext.sail:5))],Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_ext.sail:5)),model/riscv_step_ext.sail:5),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_ext.sail:5)),model/riscv_step_ext.sail:5)),model/riscv_step_ext.sail:5),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_fetch_hook"),model/riscv_step_ext.sail:5),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_ext.sail:5)),model/riscv_step_ext.sail:5),P_aux(P_id(Id_aux(Id("f"),model/riscv_step_ext.sail:5)),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_ext.sail:5)),model/riscv_step_ext.sail:5))),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_ext.sail:5)),model/riscv_step_ext.sail:5)),E_aux(E_id(Id_aux(Id("f"),model/riscv_step_ext.sail:5)),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_ext.sail:5)),model/riscv_step_ext.sail:5))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_ext.sail:5)),model/riscv_step_ext.sail:5))],Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_ext.sail:5)),model/riscv_step_ext.sail:5),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_pre_step_hook"),model/riscv_step_ext.sail:7),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step_ext.sail:7)),model/riscv_step_ext.sail:7),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step_ext.sail:7)),model/riscv_step_ext.sail:7)),model/riscv_step_ext.sail:7),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_pre_step_hook"),model/riscv_step_ext.sail:7),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_step_ext.sail:7)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_step_ext.sail:7)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step_ext.sail:7)),model/riscv_step_ext.sail:7),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_post_step_hook"),model/riscv_step_ext.sail:8),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step_ext.sail:8)),model/riscv_step_ext.sail:8),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step_ext.sail:8)),model/riscv_step_ext.sail:8)),model/riscv_step_ext.sail:8),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_post_step_hook"),model/riscv_step_ext.sail:8),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_step_ext.sail:8)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_step_ext.sail:8)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step_ext.sail:8)),model/riscv_step_ext.sail:8),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("ext_post_decode_hook"),model/riscv_decode_ext.sail:6),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_decode_ext.sail:6)),model/riscv_decode_ext.sail:6))],Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_decode_ext.sail:6)),model/riscv_decode_ext.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_decode_ext.sail:6))]),model/riscv_decode_ext.sail:6)),model/riscv_decode_ext.sail:6)),model/riscv_decode_ext.sail:6))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("ext_post_decode_hook"),model/riscv_decode_ext.sail:7),Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("x"),model/riscv_decode_ext.sail:7)),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_decode_ext.sail:6)),model/riscv_decode_ext.sail:6)),E_aux(E_id(Id_aux(Id("x"),model/riscv_decode_ext.sail:7)),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_decode_ext.sail:6)),model/riscv_decode_ext.sail:6))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_decode_ext.sail:6)),model/riscv_decode_ext.sail:6))],Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_decode_ext.sail:6)),model/riscv_decode_ext.sail:6),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_decode_ext.sail:6))]),model/riscv_decode_ext.sail:6)),model/riscv_decode_ext.sail:6)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("isRVC"),model/riscv_fetch.sail:5),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("half"),model/riscv_fetch.sail:5)),model/riscv_fetch.sail:5))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_fetch.sail:5)),model/riscv_fetch.sail:5),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_fetch.sail:5)),model/riscv_fetch.sail:5)),model/riscv_fetch.sail:5),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("isRVC"),model/riscv_fetch.sail:5),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("half"),model/riscv_fetch.sail:5)),model/riscv_fetch.sail:5),P_aux(P_id(Id_aux(Id("h"),model/riscv_fetch.sail:5)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_types.sail:12)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_types.sail:12)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_app(Id_aux(Id("vector_subrange"),Unknown),[(E_aux(E_id(Id_aux(Id("h"),model/riscv_fetch.sail:5)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_types.sail:12)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_fetch.sail:5)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_fetch.sail:5)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_constant(1),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/vector_dec.sail:183),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:183)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("11"),model/riscv_fetch.sail:5)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex11847#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11847#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_types.sail:12)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_fetch.sail:5)),model/riscv_fetch.sail:5),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("fetch"),model/riscv_fetch.sail:7),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7))],Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_fetch.sail:7));(BE_aux(BE_rmem,model/riscv_fetch.sail:7));(BE_aux(BE_rmemt,model/riscv_fetch.sail:7));(BE_aux(BE_rreg,model/riscv_fetch.sail:7));(BE_aux(BE_wmv,model/riscv_fetch.sail:7));(BE_aux(BE_wmvt,model/riscv_fetch.sail:7));(BE_aux(BE_wreg,model/riscv_fetch.sail:7))]),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:8)),model/riscv_fetch.sail:8)),model/riscv_fetch.sail:8),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("fetch"),model/riscv_fetch.sail:8),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_fetch.sail:8)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_case(E_aux(E_app(Id_aux(Id("ext_fetch_check_pc"),model/riscv_fetch.sail:12),[(E_aux(E_id(Id_aux(Id("PC"),model/riscv_fetch.sail:12)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("PC"),model/riscv_fetch.sail:12)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks.sail:12),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:12))]),model/riscv_addr_checks.sail:12)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_FetchAddr_Error"),model/riscv_fetch.sail:13),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_fetch.sail:13)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks_common.sail:11)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks.sail:12),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:12))]),model/riscv_addr_checks.sail:12)),E_aux(E_app(Id_aux(Id("F_Ext_Error"),model/riscv_fetch.sail:13),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_fetch.sail:13)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks_common.sail:11)))]),Typ_aux(Typ_app(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_FetchAddr_OK"),model/riscv_fetch.sail:14),[(P_aux(P_id(Id_aux(Id("use_pc"),model/riscv_fetch.sail:14)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks.sail:12),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:12))]),model/riscv_addr_checks.sail:12)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("or_bool"),../sail/lib/flow.sail:45),[(E_aux(E_app(Id_aux(Id("neq_anything"),model/prelude.sail:47),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("use_pc"),model/riscv_fetch.sail:15)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_fetch.sail:15)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)));(E_aux(E_lit(L_aux(L_zero,model/riscv_fetch.sail:15)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:43)),model/prelude.sail:43)));(E_aux(E_app(Id_aux(Id("and_bool"),../sail/lib/flow.sail:46),[(E_aux(E_app(Id_aux(Id("neq_anything"),model/prelude.sail:47),[(E_aux(E_app(Id_aux(Id("bitvector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("use_pc"),model/riscv_fetch.sail:15)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_fetch.sail:15)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bit"),../sail/lib/vector_dec.sail:99)),../sail/lib/vector_dec.sail:99)));(E_aux(E_lit(L_aux(L_zero,model/riscv_fetch.sail:15)),Typ_aux(Typ_id(Id_aux(Id("bit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:43)),model/prelude.sail:43)));(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_app(Id_aux(Id("haveRVC"),model/riscv_fetch.sail:15),[(E_aux(E_lit(L_aux(L_unit,model/riscv_fetch.sail:15)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:99)),model/riscv_sys_regs.sail:99)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex11874#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11874#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex11877#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex11876#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex11877#"),Unknown)),Unknown),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11876#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),Unknown)),Unknown))]),Unknown)),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex11869#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex11880#"),Unknown)),Unknown));(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex11881#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_or(NC_aux(NC_var(Kid_aux(Var("'ex11869#"),Unknown)),../sail/lib/flow.sail:26),NC_aux(NC_and(NC_aux(NC_var(Kid_aux(Var("'ex11880#"),Unknown)),Unknown),NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11881#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:22)),../sail/lib/flow.sail:26)),../sail/lib/flow.sail:26)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("F_Error"),model/riscv_fetch.sail:16),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("E_Fetch_Addr_Align"),model/riscv_fetch.sail:16),[(E_aux(E_lit(L_aux(L_unit,model/riscv_fetch.sail:16)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_id(Id_aux(Id("PC"),model/riscv_fetch.sail:16)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_step_common.sail:9)),model/riscv_step_common.sail:9));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_step_common.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5),[]),Unknown)),E_aux(E_case(E_aux(E_app(Id_aux(Id("translateAddr"),model/riscv_fetch.sail:17),[(E_aux(E_id(Id_aux(Id("use_pc"),model/riscv_fetch.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("Execute"),model/riscv_fetch.sail:17),[(E_aux(E_lit(L_aux(L_unit,model/riscv_fetch.sail:17)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Failure"),model/riscv_fetch.sail:18),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("e"),model/riscv_fetch.sail:18)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_app(Id_aux(Id("F_Error"),model/riscv_fetch.sail:18),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("e"),model/riscv_fetch.sail:18)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158)));(E_aux(E_id(Id_aux(Id("PC"),model/riscv_fetch.sail:18)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_step_common.sail:9)),model/riscv_step_common.sail:9));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_step_common.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Address"),model/riscv_fetch.sail:19),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("ppclo"),model/riscv_fetch.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("mem_read"),model/riscv_fetch.sail:24),[(E_aux(E_app(Id_aux(Id("Execute"),model/riscv_fetch.sail:24),[(E_aux(E_lit(L_aux(L_unit,model/riscv_fetch.sail:24)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("ppclo"),model/riscv_fetch.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_fetch.sail:24)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_fetch.sail:24)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_fetch.sail:24)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_fetch.sail:24)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(2),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_fetch.sail:25),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_fetch.sail:25)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(2),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)),E_aux(E_app(Id_aux(Id("F_Error"),model/riscv_fetch.sail:25),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("E_Fetch_Access_Fault"),model/riscv_fetch.sail:25),[(E_aux(E_lit(L_aux(L_unit,model/riscv_fetch.sail:25)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_id(Id_aux(Id("PC"),model/riscv_fetch.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_step_common.sail:9)),model/riscv_step_common.sail:9));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_step_common.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_fetch.sail:26),[(P_aux(P_id(Id_aux(Id("ilo"),model/riscv_fetch.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(2),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(2),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("isRVC"),model/riscv_fetch.sail:27),[(E_aux(E_id(Id_aux(Id("ilo"),model/riscv_fetch.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(2),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_fetch.sail:5)),model/riscv_fetch.sail:5)),E_aux(E_app(Id_aux(Id("F_RVC"),model/riscv_fetch.sail:28),[(E_aux(E_id(Id_aux(Id("ilo"),model/riscv_fetch.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(2),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5),[]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_fetch.sail:31)),model/riscv_fetch.sail:31),Id_aux(Id("PC_hi"),model/riscv_fetch.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("add_bits_int"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("PC"),model/riscv_fetch.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_fetch.sail:31)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_case(E_aux(E_app(Id_aux(Id("ext_fetch_check_pc"),model/riscv_fetch.sail:32),[(E_aux(E_id(Id_aux(Id("PC"),model/riscv_fetch.sail:32)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("PC_hi"),model/riscv_fetch.sail:32)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks.sail:12),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:12))]),model/riscv_addr_checks.sail:12)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_FetchAddr_Error"),model/riscv_fetch.sail:33),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_fetch.sail:33)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks_common.sail:11)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks.sail:12),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:12))]),model/riscv_addr_checks.sail:12)),E_aux(E_app(Id_aux(Id("F_Ext_Error"),model/riscv_fetch.sail:33),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_fetch.sail:33)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks_common.sail:11)))]),Typ_aux(Typ_app(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Ext_FetchAddr_OK"),model/riscv_fetch.sail:34),[(P_aux(P_id(Id_aux(Id("use_pc_hi"),model/riscv_fetch.sail:34)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("Ext_FetchAddr_Check"),model/riscv_addr_checks.sail:12),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:12))]),model/riscv_addr_checks.sail:12)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("translateAddr"),model/riscv_fetch.sail:35),[(E_aux(E_id(Id_aux(Id("use_pc_hi"),model/riscv_fetch.sail:35)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_app(Id_aux(Id("Execute"),model/riscv_fetch.sail:35),[(E_aux(E_lit(L_aux(L_unit,model/riscv_fetch.sail:35)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Failure"),model/riscv_fetch.sail:36),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("e"),model/riscv_fetch.sail:36)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:158)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_app(Id_aux(Id("F_Error"),model/riscv_fetch.sail:36),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("e"),model/riscv_fetch.sail:36)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_common.sail:158)));(E_aux(E_id(Id_aux(Id("PC_hi"),model/riscv_fetch.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_step_common.sail:9)),model/riscv_step_common.sail:9));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_step_common.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("TR_Address"),model/riscv_fetch.sail:37),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("ppchi"),model/riscv_fetch.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157));(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_types_ext.sail:7)),model/riscv_types_ext.sail:7))]),model/riscv_vmem_common.sail:157)))]),Typ_aux(Typ_app(Id_aux(Id("TR_Result"),model/riscv_vmem_rv64.sail:36),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_vmem_rv64.sail:36));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36)),model/riscv_vmem_rv64.sail:36))]),model/riscv_vmem_rv64.sail:36)),E_aux(E_block([(E_aux(E_case(E_aux(E_app(Id_aux(Id("mem_read"),model/riscv_fetch.sail:38),[(E_aux(E_app(Id_aux(Id("Execute"),model/riscv_fetch.sail:38),[(E_aux(E_lit(L_aux(L_unit,model/riscv_fetch.sail:38)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("AccessType"),model/riscv_types.sail:100),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_types.sail:3)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("ppchi"),model/riscv_fetch.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_vmem_common.sail:157)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_fetch.sail:38)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_fetch.sail:38)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_fetch.sail:38)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_fetch.sail:38)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(2),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemException"),model/riscv_fetch.sail:39),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_fetch.sail:39)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_sys_control.sail:490)),model/riscv_sys_control.sail:490)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(2),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)),E_aux(E_app(Id_aux(Id("F_Error"),model/riscv_fetch.sail:39),[(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("E_Fetch_Access_Fault"),model/riscv_fetch.sail:39),[(E_aux(E_lit(L_aux(L_unit,model/riscv_fetch.sail:39)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("ExceptionType"),model/riscv_types.sail:141),[]),Unknown)));(E_aux(E_id(Id_aux(Id("PC_hi"),model/riscv_fetch.sail:39)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_step_common.sail:9)),model/riscv_step_common.sail:9));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_step_common.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("MemValue"),model/riscv_fetch.sail:40),[(P_aux(P_id(Id_aux(Id("ihi"),model/riscv_fetch.sail:40)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(2),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("MemoryOpResult"),model/riscv_mem.sail:93),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(2),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_mem.sail:93))]),model/riscv_mem.sail:93)),E_aux(E_app(Id_aux(Id("F_Base"),model/riscv_fetch.sail:40),[(E_aux(E_app(Id_aux(Id("bitvector_concat"),../sail/lib/vector_dec.sail:88),[(E_aux(E_id(Id_aux(Id("ihi"),model/riscv_fetch.sail:40)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(2),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)));(E_aux(E_id(Id_aux(Id("ilo"),model/riscv_fetch.sail:40)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(2),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),model/riscv_sys_control.sail:489)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(2),Unknown)),model/riscv_mem.sail:93),Nexp_aux(Nexp_times(Nexp_aux(Nexp_constant(8),model/riscv_mem.sail:93),Nexp_aux(Nexp_constant(2),Unknown)),model/riscv_mem.sail:93)),../sail/lib/vector_dec.sail:86)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("FetchResult"),model/riscv_step_common.sail:5),[]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7))),None))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7))),None))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7))),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7))),None))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7))),None))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7))),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7))),None))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7))],Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_fetch.sail:7));(BE_aux(BE_rmem,model/riscv_fetch.sail:7));(BE_aux(BE_rmemt,model/riscv_fetch.sail:7));(BE_aux(BE_rreg,model/riscv_fetch.sail:7));(BE_aux(BE_wmv,model/riscv_fetch.sail:7));(BE_aux(BE_wmvt,model/riscv_fetch.sail:7));(BE_aux(BE_wreg,model/riscv_fetch.sail:7))]),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("step"),model/riscv_step.sail:4),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_step.sail:4)),model/riscv_step.sail:4))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:4)),model/riscv_step.sail:4),Effect_aux(Effect_set([(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_escape,Unknown));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_pc_access.sail:20));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_sys_regs.sail:405))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:4)),model/riscv_step.sail:4)),model/riscv_step.sail:4),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("step"),model/riscv_step.sail:4),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_step.sail:4)),model/riscv_step.sail:4),P_aux(P_id(Id_aux(Id("step_no"),model/riscv_step.sail:4)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_step_no"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_step.sail:4)),model/riscv_step.sail:4)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("ext_pre_step_hook"),model/riscv_step.sail:6),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:6)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step_ext.sail:7)),model/riscv_step_ext.sail:7)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("minstret_written"),model/riscv_step.sail:8)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_false,model/riscv_step.sail:8)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9),P_aux(P_tup([(P_aux(P_id(Id_aux(Id("retired"),model/riscv_step.sail:9)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9)));(P_aux(P_id(Id_aux(Id("stepped"),model/riscv_step.sail:9)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11956#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9))),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9)),E_aux(E_case(E_aux(E_app(Id_aux(Id("dispatchInterrupt"),model/riscv_step.sail:10),[(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_step.sail:10)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("Some"),model/riscv_step.sail:11),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("intr"),model/riscv_step.sail:11)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244)));(P_aux(P_id(Id_aux(Id("priv"),model/riscv_step.sail:11)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),../sail/lib/option.sail:10)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_instr"),model/riscv_step.sail:12),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:12)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:105)),model/prelude.sail:105)),E_aux(E_app(Id_aux(Id("print_bits"),model/riscv_step.sail:13),[(E_aux(E_lit(L_aux(L_string("Handling interrupt: "),model/riscv_step.sail:13)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("interruptType_to_bits"),model/riscv_step.sail:13),[(E_aux(E_id(Id_aux(Id("intr"),model/riscv_step.sail:13)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(8),model/riscv_types.sail:111)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/vector_dec.sail:49)),../sail/lib/vector_dec.sail:49)),E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:13)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("handle_interrupt"),model/riscv_step.sail:14),[(E_aux(E_id(Id_aux(Id("intr"),model/riscv_step.sail:14)),Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244)));(E_aux(E_id(Id_aux(Id("priv"),model/riscv_step.sail:14)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:439)),model/riscv_sys_control.sail:439)));(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_step.sail:15)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_step.sail:15)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("None"),model/riscv_step.sail:17),[(P_aux(P_lit(L_aux(L_unit,model/riscv_step.sail:17)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_sys_control.sail:244),[(A_aux(A_typ(Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("InterruptType"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244));(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),model/riscv_sys_control.sail:244))]),model/riscv_sys_control.sail:244)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step.sail:19)),model/riscv_step.sail:19),P_aux(P_id(Id_aux(Id("f"),model/riscv_step.sail:19)),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step.sail:19)),model/riscv_step.sail:19))),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step.sail:19)),model/riscv_step.sail:19)),E_aux(E_app(Id_aux(Id("ext_fetch_hook"),model/riscv_step.sail:19),[(E_aux(E_app(Id_aux(Id("fetch"),model/riscv_step.sail:19),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:19)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_fetch.sail:7)),model/riscv_fetch.sail:7)))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step_ext.sail:5)),model/riscv_step_ext.sail:5))),None),E_aux(E_block([(E_aux(E_case(E_aux(E_id(Id_aux(Id("f"),model/riscv_step.sail:20)),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step.sail:19)),model/riscv_step.sail:19)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("F_Ext_Error"),model/riscv_step.sail:22),[(P_aux(P_id(Id_aux(Id("e"),model/riscv_step.sail:22)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3)))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step.sail:19)),model/riscv_step.sail:19)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("ext_handle_fetch_check_error"),model/riscv_step.sail:23),[(E_aux(E_id(Id_aux(Id("e"),model/riscv_step.sail:23)),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:3)),model/riscv_addr_checks.sail:3)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_addr_checks.sail:15)),model/riscv_addr_checks.sail:15)));(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_step.sail:24)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_step.sail:24)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("F_Error"),model/riscv_step.sail:27),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("e"),model/riscv_step.sail:27)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_step_common.sail:9)),model/riscv_step_common.sail:9)));(P_aux(P_id(Id_aux(Id("addr"),model/riscv_step.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_step_common.sail:9)),model/riscv_step_common.sail:9));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_step_common.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step.sail:19)),model/riscv_step.sail:19)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_mem_exception"),model/riscv_step.sail:28),[(E_aux(E_id(Id_aux(Id("addr"),model/riscv_step.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("e"),model/riscv_step.sail:28)),Typ_aux(Typ_id(Id_aux(Id("ExceptionType"),model/riscv_step_common.sail:9)),model/riscv_step_common.sail:9)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:432)),model/riscv_sys_control.sail:432)));(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_step.sail:29)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)));(E_aux(E_lit(L_aux(L_false,model/riscv_step.sail:29)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("F_RVC"),model/riscv_step.sail:32),[(P_aux(P_id(Id_aux(Id("h"),model/riscv_step.sail:32)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_types.sail:12)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step.sail:19)),model/riscv_step.sail:19)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("ast"),model/riscv_step.sail:33)),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:40)),model/riscv_insts_end.sail:40)),E_aux(E_app(Id_aux(Id("decodeCompressed"),model/riscv_step.sail:33),[(E_aux(E_id(Id_aux(Id("h"),model/riscv_step.sail:33)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_types.sail:12)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:40)),model/riscv_insts_end.sail:40))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_instr"),model/riscv_step.sail:34),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:34)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:105)),model/prelude.sail:105)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("print_instr"),model/riscv_step.sail:36),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("["),model/riscv_step.sail:36)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_int"),model/riscv_step.sail:36),[(E_aux(E_id(Id_aux(Id("step_no"),model/riscv_step.sail:36)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_step_no"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:53)),model/prelude.sail:53)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] ["),model/riscv_step.sail:36)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("privLevel_to_str"),model/riscv_types.sail:92),[(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_step.sail:36)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:84)),model/riscv_types.sail:84)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("]: "),model/riscv_step.sail:36)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("PC"),model/riscv_step.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" ("),model/riscv_step.sail:36)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("h"),model/riscv_step.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_types.sail:12)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(") "),model/riscv_step.sail:36)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("print_insn"),model/riscv_insts_end.sail:35),[(E_aux(E_id(Id_aux(Id("ast"),model/riscv_step.sail:36)),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:40)),model/riscv_insts_end.sail:40)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_end.sail:32)),model/riscv_insts_end.sail:32)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:100)),model/prelude.sail:100)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:37)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("haveRVC"),model/riscv_step.sail:39),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:39)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:99)),model/riscv_sys_regs.sail:99)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("nextPC"),model/riscv_step.sail:40)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("add_bits_int"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("PC"),model/riscv_step.sail:40)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(2),model/riscv_step.sail:40)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_step.sail:41),[(E_aux(E_app(Id_aux(Id("ext_post_decode_hook"),model/riscv_step.sail:41),[(E_aux(E_id(Id_aux(Id("ast"),model/riscv_step.sail:41)),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:40)),model/riscv_insts_end.sail:40)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_decode_ext.sail:6)),model/riscv_decode_ext.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)));(E_aux(E_lit(L_aux(L_true,model/riscv_step.sail:41)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("handle_illegal"),model/riscv_step.sail:43),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:43)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:382)),model/riscv_platform.sail:382)));(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_step.sail:44)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_types.sail:96)),Unknown)));(E_aux(E_lit(L_aux(L_true,model/riscv_step.sail:44)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9))),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9))),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("F_Base"),model/riscv_step.sail:47),[(P_aux(P_id(Id_aux(Id("w"),model/riscv_step.sail:47)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_types.sail:13)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("FetchResult"),model/riscv_step.sail:19)),model/riscv_step.sail:19)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("ast"),model/riscv_step.sail:48)),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:37)),model/riscv_insts_end.sail:37)),E_aux(E_app(Id_aux(Id("decode"),model/riscv_step.sail:48),[(E_aux(E_id(Id_aux(Id("w"),model/riscv_step.sail:48)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_types.sail:13)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:37)),model/riscv_insts_end.sail:37))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("get_config_print_instr"),model/riscv_step.sail:49),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:49)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/prelude.sail:105)),model/prelude.sail:105)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("print_instr"),model/riscv_step.sail:51),[(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("["),model/riscv_step.sail:51)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_int"),model/riscv_step.sail:51),[(E_aux(E_id(Id_aux(Id("step_no"),model/riscv_step.sail:51)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_step_no"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:53)),model/prelude.sail:53)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("] ["),model/riscv_step.sail:51)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("privLevel_to_str"),model/riscv_types.sail:92),[(E_aux(E_id(Id_aux(Id("cur_privilege"),model/riscv_step.sail:51)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_types.sail:84)),model/riscv_types.sail:84)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string("]: "),model/riscv_step.sail:51)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("PC"),model/riscv_step.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(" ("),model/riscv_step.sail:51)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_app(Id_aux(Id("string_of_bits"),model/prelude.sail:63),[(E_aux(E_id(Id_aux(Id("w"),model/riscv_step.sail:51)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_types.sail:13)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/prelude.sail:55)),model/prelude.sail:55)));(E_aux(E_app(Id_aux(Id("concat_str"),model/prelude.sail:69),[(E_aux(E_lit(L_aux(L_string(") "),model/riscv_step.sail:51)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("print_insn"),model/riscv_insts_end.sail:35),[(E_aux(E_id(Id_aux(Id("ast"),model/riscv_step.sail:51)),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:37)),model/riscv_insts_end.sail:37)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_insts_end.sail:32)),model/riscv_insts_end.sail:32)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("string"),../sail/lib/string.sail:10)),../sail/lib/string.sail:10)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:100)),model/prelude.sail:100)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:52)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("nextPC"),model/riscv_step.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("add_bits_int"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("PC"),model/riscv_step.sail:53)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_num(4),model/riscv_step.sail:53)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_tuple([(E_aux(E_app(Id_aux(Id("execute"),model/riscv_step.sail:54),[(E_aux(E_app(Id_aux(Id("ext_post_decode_hook"),model/riscv_step.sail:54),[(E_aux(E_id(Id_aux(Id("ast"),model/riscv_step.sail:54)),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_insts_end.sail:37)),model/riscv_insts_end.sail:37)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_decode_ext.sail:6)),model/riscv_decode_ext.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_insts_begin.sail:9)),model/riscv_insts_begin.sail:9)));(E_aux(E_lit(L_aux(L_true,model/riscv_step.sail:54)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9))),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9))),None))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9))),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9))),None))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:9)),model/riscv_step.sail:9))]),model/riscv_step.sail:9))),None),E_aux(E_block([(E_aux(E_app(Id_aux(Id("tick_pc"),model/riscv_step.sail:60),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:60)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_pc_access.sail:20)),model/riscv_pc_access.sail:20)));(E_aux(E_case(E_aux(E_id(Id_aux(Id("retired"),model/riscv_step.sail:63)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RETIRE_SUCCESS"),model/riscv_step.sail:64)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9)),E_aux(E_app(Id_aux(Id("retire_instruction"),model/riscv_step.sail:64),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:64)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_regs.sail:407)),model/riscv_sys_regs.sail:407))),None));(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("RETIRE_FAIL"),model/riscv_step.sail:65)),Typ_aux(Typ_id(Id_aux(Id("Retired"),model/riscv_step.sail:9)),model/riscv_step.sail:9)),E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:65)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_app(Id_aux(Id("ext_post_step_hook"),model/riscv_step.sail:69),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:69)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step_ext.sail:8)),model/riscv_step_ext.sail:8)));(E_aux(E_id(Id_aux(Id("stepped"),model/riscv_step.sail:71)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11956#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:4)),model/riscv_step.sail:4))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:4)),model/riscv_step.sail:4)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:4)),model/riscv_step.sail:4))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_step.sail:4)),model/riscv_step.sail:4))],Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:4)),model/riscv_step.sail:4),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("loop"),model/riscv_step.sail:74),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step.sail:74)),model/riscv_step.sail:74))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step.sail:74)),model/riscv_step.sail:74),Effect_aux(Effect_set([(BE_aux(BE_barr,model/riscv_insts_begin.sail:9));(BE_aux(BE_eamem,model/riscv_insts_begin.sail:9));(BE_aux(BE_escape,Unknown));(BE_aux(BE_exmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmem,model/riscv_insts_begin.sail:9));(BE_aux(BE_rmemt,model/riscv_insts_begin.sail:9));(BE_aux(BE_rreg,model/riscv_platform.sail:268));(BE_aux(BE_undef,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmv,model/riscv_insts_begin.sail:9));(BE_aux(BE_wmvt,model/riscv_insts_begin.sail:9));(BE_aux(BE_wreg,model/riscv_platform.sail:247))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step.sail:74)),model/riscv_step.sail:74)),model/riscv_step.sail:74),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("loop"),model/riscv_step.sail:74),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step.sail:74)),model/riscv_step.sail:74),P_aux(P_lit(L_aux(L_unit,model/riscv_step.sail:74)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step.sail:74)),model/riscv_step.sail:74)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("insns_per_tick"),model/riscv_step.sail:75)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_insns_per_tick"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("plat_insns_per_tick"),model/riscv_step.sail:75),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:75)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_platform.sail:120)),model/riscv_platform.sail:120))),None),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_step.sail:76)),model/riscv_step.sail:76),Id_aux(Id("i"),model/riscv_step.sail:76)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(0),model/riscv_step.sail:76)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_step.sail:77)),model/riscv_step.sail:77),Id_aux(Id("step_no"),model/riscv_step.sail:77)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(0),model/riscv_step.sail:77)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_loop(loop,Measure_aux(Measure_none,model/riscv_step.sail:78),E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_id(Id_aux(Id("htif_done"),model/riscv_step.sail:78)),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:268)),model/riscv_platform.sail:268)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_bool,Unknown),Kid_aux(Var("'ex11962#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11962#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("stepped"),model/riscv_step.sail:79)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11967#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("step"),model/riscv_step.sail:79),[(E_aux(E_id(Id_aux(Id("step_no"),model/riscv_step.sail:79)),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_step.sail:77)),model/riscv_step.sail:77)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_step.sail:4)),model/riscv_step.sail:4))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_id(Id_aux(Id("stepped"),model/riscv_step.sail:80)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex11967#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("step_no"),model/riscv_step.sail:80)),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex11968#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'ex11968#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9))]),../sail/lib/arith.sail:9)),Unknown)),E_aux(E_app(Id_aux(Id("add_atom"),../sail/lib/arith.sail:13),[(E_aux(E_id(Id_aux(Id("step_no"),model/riscv_step.sail:80)),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_step.sail:77)),model/riscv_step.sail:77)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_step.sail:80)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex11968#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'ex11968#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9))]),../sail/lib/arith.sail:9)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:80)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_id(Id_aux(Id("htif_done"),model/riscv_step.sail:83)),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:268)),model/riscv_platform.sail:268)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("exit_val"),model/riscv_step.sail:84)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_exit_val"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_step.sail:84),[(E_aux(E_id(Id_aux(Id("htif_exit_code"),model/riscv_step.sail:84)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:269)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240))),None),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("exit_val"),model/riscv_step.sail:85)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_exit_val"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_step.sail:85)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:28),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'_exit_val"),Unknown)),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/flow.sail:28)),../sail/lib/flow.sail:28))]),../sail/lib/flow.sail:28)),E_aux(E_app(Id_aux(Id("print"),model/riscv_step.sail:85),[(E_aux(E_lit(L_aux(L_string("SUCCESS"),model/riscv_step.sail:85)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/prelude.sail:97)),model/prelude.sail:97)),E_aux(E_app(Id_aux(Id("print_int"),model/riscv_step.sail:86),[(E_aux(E_lit(L_aux(L_string("FAILURE: "),model/riscv_step.sail:86)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_id(Id_aux(Id("exit_val"),model/riscv_step.sail:86)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_exit_val"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),../sail/lib/arith.sail:47)),../sail/lib/arith.sail:47))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("i"),model/riscv_step.sail:89)),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex11975#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'ex11975#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9))]),../sail/lib/arith.sail:9)),Unknown)),E_aux(E_app(Id_aux(Id("add_atom"),../sail/lib/arith.sail:13),[(E_aux(E_id(Id_aux(Id("i"),model/riscv_step.sail:89)),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_step.sail:76)),model/riscv_step.sail:76)));(E_aux(E_lit(L_aux(L_num(1),model/riscv_step.sail:89)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(1),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex11975#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom"),../sail/lib/arith.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_sum(Nexp_aux(Nexp_var(Kid_aux(Var("'ex11975#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(1),Unknown)),../sail/lib/arith.sail:9)),../sail/lib/arith.sail:9))]),../sail/lib/arith.sail:9)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_int"),../sail/lib/flow.sail:43),[(E_aux(E_id(Id_aux(Id("i"),model/riscv_step.sail:90)),Typ_aux(Typ_id(Id_aux(Id("int"),model/riscv_step.sail:76)),model/riscv_step.sail:76)));(E_aux(E_id(Id_aux(Id("insns_per_tick"),model/riscv_step.sail:90)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_var(Kid_aux(Var("'_insns_per_tick"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex11980#"),Unknown)),Unknown))],NC_aux(NC_true,Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex11980#"),Unknown)),Unknown),Nexp_aux(Nexp_var(Kid_aux(Var("'_insns_per_tick"),Unknown)),Unknown)),../sail/lib/flow.sail:28)),Unknown))]),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("tick_clock"),model/riscv_step.sail:91),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:91)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:247)),model/riscv_platform.sail:247)));(E_aux(E_app(Id_aux(Id("tick_platform"),model/riscv_step.sail:93),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:93)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:376)),model/riscv_platform.sail:376)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("i"),model/riscv_step.sail:94)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)),E_aux(E_lit(L_aux(L_num(0),model/riscv_step.sail:94)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:95)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step.sail:74)),model/riscv_step.sail:74))),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step.sail:74)),model/riscv_step.sail:74)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step.sail:74)),model/riscv_step.sail:74))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step.sail:74)),model/riscv_step.sail:74))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step.sail:74)),model/riscv_step.sail:74),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("init_model"),model/riscv_step.sail:101),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step.sail:101)),model/riscv_step.sail:101),Effect_aux(Effect_set([(BE_aux(BE_rreg,model/riscv_sys_regs.sail:134));(BE_aux(BE_wreg,model/riscv_platform.sail:267))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step.sail:101)),model/riscv_step.sail:101)),model/riscv_step.sail:101),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("init_model"),model/riscv_step.sail:101),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,model/riscv_step.sail:101)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_app(Id_aux(Id("init_platform"),model/riscv_step.sail:102),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:102)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_platform.sail:370)),model/riscv_platform.sail:370)));(E_aux(E_app(Id_aux(Id("init_sys"),model/riscv_step.sail:103),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:103)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_sys_control.sail:444)),model/riscv_sys_control.sail:444)));(E_aux(E_app(Id_aux(Id("init_vmem"),model/riscv_step.sail:104),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:104)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_vmem_rv64.sail:83)),model/riscv_vmem_rv64.sail:83)));(E_aux(E_app(Id_aux(Id("ext_init"),model/riscv_step.sail:107),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:107)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step_ext.sail:3)),model/riscv_step_ext.sail:3)));(E_aux(E_app(Id_aux(Id("ext_init_regs"),model/riscv_step.sail:108),[(E_aux(E_lit(L_aux(L_unit,model/riscv_step.sail:108)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_ext_regs.sail:5)),model/riscv_ext_regs.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step.sail:101)),model/riscv_step.sail:101))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))],Typ_aux(Typ_id(Id_aux(Id("unit"),model/riscv_step.sail:101)),model/riscv_step.sail:101),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_val(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("vector"),model/riscv_analysis.sail:4),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4));(A_aux(A_order(Ord_aux(Ord_dec,model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4))]),model/riscv_analysis.sail:4),P_aux(P_id(Id_aux(Id("GPRstrs"),model/riscv_analysis.sail:4)),Typ_aux(Typ_app(Id_aux(Id("vector"),model/riscv_analysis.sail:4),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4));(A_aux(A_order(Ord_aux(Ord_dec,model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4))]),model/riscv_analysis.sail:4))),Typ_aux(Typ_app(Id_aux(Id("vector"),model/riscv_analysis.sail:4),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4));(A_aux(A_order(Ord_aux(Ord_dec,model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4))]),model/riscv_analysis.sail:4)),E_aux(E_vector([(E_aux(E_lit(L_aux(L_string("x31"),model/riscv_analysis.sail:4)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x30"),model/riscv_analysis.sail:4)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x29"),model/riscv_analysis.sail:4)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x28"),model/riscv_analysis.sail:4)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x27"),model/riscv_analysis.sail:4)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x26"),model/riscv_analysis.sail:4)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x25"),model/riscv_analysis.sail:4)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x24"),model/riscv_analysis.sail:4)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x23"),model/riscv_analysis.sail:4)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x22"),model/riscv_analysis.sail:4)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x21"),model/riscv_analysis.sail:4)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x20"),model/riscv_analysis.sail:5)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x19"),model/riscv_analysis.sail:5)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x18"),model/riscv_analysis.sail:5)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x17"),model/riscv_analysis.sail:5)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x16"),model/riscv_analysis.sail:5)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x15"),model/riscv_analysis.sail:5)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x14"),model/riscv_analysis.sail:5)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x13"),model/riscv_analysis.sail:5)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x12"),model/riscv_analysis.sail:5)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x11"),model/riscv_analysis.sail:5)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x10"),model/riscv_analysis.sail:6)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x9"),model/riscv_analysis.sail:6)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x8"),model/riscv_analysis.sail:6)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x7"),model/riscv_analysis.sail:6)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x6"),model/riscv_analysis.sail:6)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x5"),model/riscv_analysis.sail:6)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x4"),model/riscv_analysis.sail:6)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x3"),model/riscv_analysis.sail:6)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x2"),model/riscv_analysis.sail:6)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x1"),model/riscv_analysis.sail:6)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)));(E_aux(E_lit(L_aux(L_string("x0"),model/riscv_analysis.sail:6)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("vector"),model/riscv_analysis.sail:4),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4));(A_aux(A_order(Ord_aux(Ord_dec,model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4))]),model/riscv_analysis.sail:4))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("GPRstr"),model/riscv_analysis.sail:9),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9))]),model/riscv_analysis.sail:9))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9),Effect_aux(Effect_set([]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:9),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:9),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9))]),model/riscv_analysis.sail:9),P_aux(P_id(Id_aux(Id("i"),model/riscv_analysis.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_analysis.sail:9)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_analysis.sail:9)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("plain_vector_access"),../sail/lib/vector_dec.sail:109),[(E_aux(E_id(Id_aux(Id("GPRstrs"),model/riscv_analysis.sail:9)),Typ_aux(Typ_app(Id_aux(Id("vector"),model/riscv_analysis.sail:4),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4));(A_aux(A_order(Ord_aux(Ord_dec,model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4)),model/riscv_analysis.sail:4))]),model/riscv_analysis.sail:4)));(E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_analysis.sail:9),[(E_aux(E_id(Id_aux(Id("i"),model/riscv_analysis.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_analysis.sail:9)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(5),model/riscv_analysis.sail:9)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:4)),../sail/lib/vector_dec.sail:107))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_analysis.sail:9)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))],Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("CIA_fp"),model/riscv_analysis.sail:11)),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:11),[(E_aux(E_lit(L_aux(L_string("CIA"),model/riscv_analysis.sail:11)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown))),None)));(DEF_val(LB_aux(LB_val(P_aux(P_id(Id_aux(Id("NIA_fp"),model/riscv_analysis.sail:12)),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:12),[(E_aux(E_lit(L_aux(L_string("NIA"),model/riscv_analysis.sail:12)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown))),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("initial_analysis"),model/riscv_analysis.sail:189),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189))],Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("regfps"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189));(Typ_aux(Typ_id(Id_aux(Id("regfps"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189));(Typ_aux(Typ_id(Id_aux(Id("regfps"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189));(Typ_aux(Typ_id(Id_aux(Id("niafps"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189));(Typ_aux(Typ_id(Id_aux(Id("diafp"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189));(Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189))]),model/riscv_analysis.sail:189),Effect_aux(Effect_set([(BE_aux(BE_escape,model/riscv_types.sail:248));(BE_aux(BE_rreg,model/riscv_regs.sail:3))]),Unknown)),Unknown)),Unknown))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_some(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("regfps"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189));(Typ_aux(Typ_id(Id_aux(Id("regfps"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189));(Typ_aux(Typ_id(Id_aux(Id("regfps"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189));(Typ_aux(Typ_id(Id_aux(Id("niafps"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189));(Typ_aux(Typ_id(Id_aux(Id("diafp"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189));(Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189))]),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("initial_analysis"),model/riscv_analysis.sail:189),Pat_aux(Pat_exp(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189),P_aux(P_id(Id_aux(Id("instr"),model/riscv_analysis.sail:189)),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189))),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:190)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cast(Typ_aux(Typ_id(Id_aux(Id("regfps"),model/riscv_analysis.sail:190)),model/riscv_analysis.sail:190),E_aux(E_list([]),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:191)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cast(Typ_aux(Typ_id(Id_aux(Id("regfps"),model/riscv_analysis.sail:191)),model/riscv_analysis.sail:191),E_aux(E_list([]),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("aR"),model/riscv_analysis.sail:192)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cast(Typ_aux(Typ_id(Id_aux(Id("regfps"),model/riscv_analysis.sail:192)),model/riscv_analysis.sail:192),E_aux(E_list([]),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("ik"),model/riscv_analysis.sail:193)),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193)),E_aux(E_cast(Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193),E_aux(E_app(Id_aux(Id("IK_simple"),model/riscv_analysis.sail:193),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:193)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("Nias"),model/riscv_analysis.sail:194)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:25),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25))]),../sail/lib/regfp.sail:25)),E_aux(E_cast(Typ_aux(Typ_id(Id_aux(Id("niafps"),model/riscv_analysis.sail:194)),model/riscv_analysis.sail:194),E_aux(E_list([(E_aux(E_app(Id_aux(Id("NIAFP_successor"),model/riscv_analysis.sail:194),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:194)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("niafp"),../sail/lib/regfp.sail:19),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:25),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25))]),../sail/lib/regfp.sail:25))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:25),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25))]),../sail/lib/regfp.sail:25))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("Dia"),model/riscv_analysis.sail:195)),Typ_aux(Typ_id(Id_aux(Id("diafp"),model/riscv_analysis.sail:195)),model/riscv_analysis.sail:195)),E_aux(E_cast(Typ_aux(Typ_id(Id_aux(Id("diafp"),model/riscv_analysis.sail:195)),model/riscv_analysis.sail:195),E_aux(E_app(Id_aux(Id("DIAFP_none"),model/riscv_analysis.sail:195),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:195)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("diafp"),../sail/lib/regfp.sail:28),[]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("diafp"),model/riscv_analysis.sail:195)),model/riscv_analysis.sail:195))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_case(E_aux(E_id(Id_aux(Id("instr"),model/riscv_analysis.sail:197)),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),[(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("EBREAK"),model/riscv_analysis.sail:198),[(P_aux(P_lit(L_aux(L_unit,model/riscv_analysis.sail:198)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:198)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("UTYPE"),model/riscv_analysis.sail:199),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_analysis.sail:199)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_base.sail:6)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_analysis.sail:199)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_analysis.sail:199)),Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:6)),model/riscv_insts_base.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(20),model/riscv_insts_base.sail:6)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("uop"),model/riscv_insts_base.sail:6)),model/riscv_insts_base.sail:6))]),model/riscv_insts_base.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:200)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:200)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:200)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:200)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:200),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:200),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:200)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:200)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("RISCV_JAL"),model/riscv_analysis.sail:202),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_analysis.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/riscv_insts_base.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_analysis.sail:202)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/riscv_insts_base.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:35)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:203)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:203)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:203),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:203),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:203)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:203)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:204),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_analysis.sail:204)),model/riscv_analysis.sail:204))]),model/riscv_analysis.sail:204),P_aux(P_id(Id_aux(Id("offset"),model/riscv_analysis.sail:204)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_analysis.sail:204)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_analysis.sail:204)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_analysis.sail:204),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("imm"),model/riscv_analysis.sail:204)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(21),model/riscv_insts_base.sail:35)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_analysis.sail:204)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("Nias"),model/riscv_analysis.sail:205)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:25),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25))]),../sail/lib/regfp.sail:25)),E_aux(E_list([(E_aux(E_app(Id_aux(Id("NIAFP_concrete_address"),model/riscv_analysis.sail:205),[(E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("PC"),model/riscv_analysis.sail:205)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("offset"),model/riscv_analysis.sail:205)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_analysis.sail:204)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),../sail/lib/regfp.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("niafp"),../sail/lib/regfp.sail:19),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:25),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25))]),../sail/lib/regfp.sail:25))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("ik"),model/riscv_analysis.sail:206)),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown)),E_aux(E_app(Id_aux(Id("IK_branch"),model/riscv_analysis.sail:206),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:206)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("RISCV_JALR"),model/riscv_analysis.sail:208),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_analysis.sail:208)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs"),model/riscv_analysis.sail:208)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_analysis.sail:208)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:81)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs"),model/riscv_analysis.sail:209)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:209)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:209)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:209)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:209),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:209),[(E_aux(E_id(Id_aux(Id("rs"),model/riscv_analysis.sail:209)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:209)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:210)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:210)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:210)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:210)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:210),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:210),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:210)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:210)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:211),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_analysis.sail:211)),model/riscv_analysis.sail:211))]),model/riscv_analysis.sail:211),P_aux(P_id(Id_aux(Id("offset"),model/riscv_analysis.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_analysis.sail:211)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_analysis.sail:211)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_analysis.sail:211),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("imm"),model/riscv_analysis.sail:211)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:81)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_analysis.sail:211)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("Nias"),model/riscv_analysis.sail:212)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:25),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25))]),../sail/lib/regfp.sail:25)),E_aux(E_list([(E_aux(E_app(Id_aux(Id("NIAFP_indirect_address"),model/riscv_analysis.sail:212),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:212)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("niafp"),../sail/lib/regfp.sail:19),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:25),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25))]),../sail/lib/regfp.sail:25))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("ik"),model/riscv_analysis.sail:213)),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown)),E_aux(E_app(Id_aux(Id("IK_branch"),model/riscv_analysis.sail:213),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:213)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("BTYPE"),model/riscv_analysis.sail:215),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_analysis.sail:215)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/riscv_insts_base.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:215)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:215)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_analysis.sail:215)),Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/riscv_insts_base.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bop"),model/riscv_insts_base.sail:92)),model/riscv_insts_base.sail:92))]),model/riscv_insts_base.sail:92)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:216)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:216)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:216)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:216)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:216),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:216),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:216)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:216)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:217)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:217)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:217)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:217)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:217),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:217),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:217)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:217)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("ik"),model/riscv_analysis.sail:218)),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown)),E_aux(E_app(Id_aux(Id("IK_branch"),model/riscv_analysis.sail:218),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:218)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:219),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_analysis.sail:219)),model/riscv_analysis.sail:219))]),model/riscv_analysis.sail:219),P_aux(P_id(Id_aux(Id("offset"),model/riscv_analysis.sail:219)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_analysis.sail:219)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_analysis.sail:219)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_app(Id_aux(Id("EXTS"),model/riscv_analysis.sail:219),[(E_aux(E_lit(L_aux(L_num(64),Unknown)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("imm"),model/riscv_analysis.sail:219)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(13),model/riscv_insts_base.sail:92)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_analysis.sail:219)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),None),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("Nias"),model/riscv_analysis.sail:220)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:25),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25))]),../sail/lib/regfp.sail:25)),E_aux(E_list([(E_aux(E_app(Id_aux(Id("NIAFP_concrete_address"),model/riscv_analysis.sail:220),[(E_aux(E_app(Id_aux(Id("add_bits"),../sail/lib/vector_dec.sail:145),[(E_aux(E_id(Id_aux(Id("PC"),model/riscv_analysis.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("offset"),model/riscv_analysis.sail:220)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_analysis.sail:219)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),../sail/lib/regfp.sail:21)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("niafp"),../sail/lib/regfp.sail:19),[]),Unknown)));(E_aux(E_app(Id_aux(Id("NIAFP_successor"),model/riscv_analysis.sail:220),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:220)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("niafp"),../sail/lib/regfp.sail:19),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:25),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25))]),../sail/lib/regfp.sail:25))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("ITYPE"),model/riscv_analysis.sail:222),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_analysis.sail:222)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs"),model/riscv_analysis.sail:222)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_analysis.sail:222)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_analysis.sail:222)),Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:151)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("iop"),model/riscv_insts_base.sail:151)),model/riscv_insts_base.sail:151))]),model/riscv_insts_base.sail:151)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs"),model/riscv_analysis.sail:223)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:223)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:223)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:223)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:223),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:223),[(E_aux(E_id(Id_aux(Id("rs"),model/riscv_analysis.sail:223)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:223)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:224)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:224)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:224)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:224)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:224),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:224),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:224)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:224)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("SHIFTIOP"),model/riscv_analysis.sail:226),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_analysis.sail:226)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs"),model/riscv_analysis.sail:226)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_analysis.sail:226)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_analysis.sail:226)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(6),model/riscv_insts_base.sail:193)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:193)),model/riscv_insts_base.sail:193))]),model/riscv_insts_base.sail:193)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs"),model/riscv_analysis.sail:227)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:227)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:227)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:227)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:227),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:227),[(E_aux(E_id(Id_aux(Id("rs"),model/riscv_analysis.sail:227)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:227)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:228)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:228)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:228)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:228)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:228),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:228),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:228)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:228)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("RTYPE"),model/riscv_analysis.sail:230),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:230)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:230)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_analysis.sail:230)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_analysis.sail:230)),Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("rop"),model/riscv_insts_base.sail:233)),model/riscv_insts_base.sail:233))]),model/riscv_insts_base.sail:233)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:231)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:231)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:231)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:231)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:231),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:231),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:231)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:231)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:232)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:232)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:232)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:232)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:232),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:232),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:232)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:232)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:233)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:233)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:233)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:233)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:233),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:233),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:233)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:233)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("CSR"),model/riscv_analysis.sail:235),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("csr"),model/riscv_analysis.sail:235)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:235)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_analysis.sail:235)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("is_imm"),model/riscv_analysis.sail:235)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12073#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_analysis.sail:235)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5));(Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5))]),model/riscv_insts_zicsr.sail:5)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_let(LB_aux(LB_val(P_aux(P_typ(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_analysis.sail:236)),model/riscv_analysis.sail:236),P_aux(P_id(Id_aux(Id("isWrite"),model/riscv_analysis.sail:236)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12083#"),Unknown)),Unknown)),Unknown))]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_analysis.sail:236)),model/riscv_analysis.sail:236)),E_aux(E_case(E_aux(E_id(Id_aux(Id("op"),model/riscv_analysis.sail:236)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)),[(Pat_aux(Pat_exp(P_aux(P_id(Id_aux(Id("CSRRW"),model/riscv_analysis.sail:237)),Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)),E_aux(E_lit(L_aux(L_true,model/riscv_analysis.sail:237)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("csrop"),model/riscv_insts_zicsr.sail:5)),model/riscv_insts_zicsr.sail:5)),E_aux(E_if(E_aux(E_id(Id_aux(Id("is_imm"),model/riscv_analysis.sail:238)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12073#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("neq_int"),../sail/lib/flow.sail:44),[(E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_analysis.sail:238),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_analysis.sail:238)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex12074#"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_var(Kid_aux(Var("'ex12074#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex12074#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_not_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex12074#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/flow.sail:32)),Unknown))]),Unknown)),Unknown)),E_aux(E_app(Id_aux(Id("neq_int"),../sail/lib/flow.sail:44),[(E_aux(E_app(Id_aux(Id("unsigned"),model/riscv_analysis.sail:238),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:238)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_app(Id_aux(Id("range"),../sail/lib/vector_dec.sail:240),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240));(A_aux(A_nexp(Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240))]),../sail/lib/vector_dec.sail:240)));(E_aux(E_lit(L_aux(L_num(0),model/riscv_analysis.sail:238)),Typ_aux(Typ_app(Id_aux(Id("atom"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(0),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_exist([(KOpt_aux(KOpt_kind(K_aux(K_int,Unknown),Kid_aux(Var("'ex12078#"),Unknown)),Unknown))],NC_aux(NC_and(NC_aux(NC_bounded_le(Nexp_aux(Nexp_constant(0),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_var(Kid_aux(Var("'ex12078#"),Unknown)),Unknown)),Unknown),NC_aux(NC_bounded_le(Nexp_aux(Nexp_var(Kid_aux(Var("'ex12078#"),Unknown)),Unknown),Nexp_aux(Nexp_minus(Nexp_aux(Nexp_exp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:240),Nexp_aux(Nexp_constant(1),../sail/lib/vector_dec.sail:240)),../sail/lib/vector_dec.sail:240)),Unknown)),Unknown),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_not_equal(Nexp_aux(Nexp_var(Kid_aux(Var("'ex12078#"),Unknown)),Unknown),Nexp_aux(Nexp_constant(0),Unknown)),../sail/lib/flow.sail:32)),Unknown))]),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_analysis.sail:236)),model/riscv_analysis.sail:236))),None))]),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_analysis.sail:236)),model/riscv_analysis.sail:236))),None),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:240)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:240),[(E_aux(E_app(Id_aux(Id("csr_name"),model/riscv_analysis.sail:240),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_analysis.sail:240)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:95)),model/riscv_csr_map.sail:95)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:240)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("not_bool"),model/prelude.sail:37),[(E_aux(E_id(Id_aux(Id("is_imm"),model/riscv_analysis.sail:241)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12073#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_app(Id_aux(Id("not"),../sail/lib/flow.sail:18),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12073#"),Unknown)),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),../sail/lib/flow.sail:18))]),../sail/lib/flow.sail:18)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:242)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:242),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:242),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:242)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:242)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:243)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_id(Id_aux(Id("isWrite"),model/riscv_analysis.sail:244)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12083#"),Unknown)),Unknown)),Unknown))]),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:245)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:245),[(E_aux(E_app(Id_aux(Id("csr_name"),model/riscv_analysis.sail:245),[(E_aux(E_id(Id_aux(Id("csr"),model/riscv_analysis.sail:245)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_zicsr.sail:5)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_csr_map.sail:95)),model/riscv_csr_map.sail:95)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:245)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:246)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:247)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:247),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:247),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:247)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:247)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("LOAD"),model/riscv_analysis.sail:249),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_analysis.sail:249)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:288)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs"),model/riscv_analysis.sail:249)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_analysis.sail:249)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("unsign"),model/riscv_analysis.sail:249)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12087#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_analysis.sail:249)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288)));(P_aux(P_id(Id_aux(Id("aq"),model/riscv_analysis.sail:249)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12088#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rl"),model/riscv_analysis.sail:249)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12089#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:288)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:288)),model/riscv_insts_base.sail:288))]),model/riscv_insts_base.sail:288)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs"),model/riscv_analysis.sail:250)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:250)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:250)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:250)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:250),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:250),[(E_aux(E_id(Id_aux(Id("rs"),model/riscv_analysis.sail:250)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:250)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:251)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:251)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:251)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:251)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:251),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:251),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:251)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:251)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("aR"),model/riscv_analysis.sail:252)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:252)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("ik"),model/riscv_analysis.sail:253)),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("aq"),model/riscv_analysis.sail:254)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12088#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_analysis.sail:254)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12089#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12088#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12089#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:255)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:255)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12088#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12089#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_read"),model/riscv_analysis.sail:255),[(E_aux(E_id(Id_aux(Id("Read_plain"),model/riscv_analysis.sail:255)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:256)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:256)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12088#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12089#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_read"),model/riscv_analysis.sail:256),[(E_aux(E_id(Id_aux(Id("Read_RISCV_acquire"),model/riscv_analysis.sail:256)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:257)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:257)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12088#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12089#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_read"),model/riscv_analysis.sail:257),[(E_aux(E_id(Id_aux(Id("Read_RISCV_strong_acquire"),model/riscv_analysis.sail:257)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12088#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12089#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_analysis.sail:259),[(E_aux(E_lit(L_aux(L_string("LOAD type not implemented in initial_analysis"),model/riscv_analysis.sail:259)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("STORE"),model/riscv_analysis.sail:262),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_analysis.sail:262)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:365)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:262)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:262)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_analysis.sail:262)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365)));(P_aux(P_id(Id_aux(Id("aq"),model/riscv_analysis.sail:262)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12095#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rl"),model/riscv_analysis.sail:262)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12096#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:365)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_base.sail:365)),model/riscv_insts_base.sail:365))]),model/riscv_insts_base.sail:365)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:263)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:263)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:263)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:263)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:263),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:263),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:263)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:263)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:264)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:264)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:264)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:264)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:264),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:264),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:264)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:264)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:265)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:265)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:265)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("aR"),model/riscv_analysis.sail:265)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:265),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:265),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:265)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("aR"),model/riscv_analysis.sail:265)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("ik"),model/riscv_analysis.sail:266)),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("aq"),model/riscv_analysis.sail:267)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12095#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_analysis.sail:267)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12096#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12095#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12096#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:268)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:268)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12095#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12096#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_write"),model/riscv_analysis.sail:268),[(E_aux(E_id(Id_aux(Id("Write_plain"),model/riscv_analysis.sail:268)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:269)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:269)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12095#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12096#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_write"),model/riscv_analysis.sail:269),[(E_aux(E_id(Id_aux(Id("Write_RISCV_release"),model/riscv_analysis.sail:269)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:270)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:270)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12095#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12096#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_write"),model/riscv_analysis.sail:270),[(E_aux(E_id(Id_aux(Id("Write_RISCV_strong_release"),model/riscv_analysis.sail:270)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12095#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12096#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_analysis.sail:272),[(E_aux(E_lit(L_aux(L_string("STORE type not implemented in initial_analysis"),model/riscv_analysis.sail:272)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("ADDIW"),model/riscv_analysis.sail:275),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_analysis.sail:275)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs"),model/riscv_analysis.sail:275)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_analysis.sail:275)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(12),model/riscv_insts_base.sail:416)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:416)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs"),model/riscv_analysis.sail:276)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:276)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:276)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:276)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:276),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:276),[(E_aux(E_id(Id_aux(Id("rs"),model/riscv_analysis.sail:276)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:276)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:277)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:277)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:277)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:277)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:277),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:277),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:277)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:277)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("SHIFTW"),model/riscv_analysis.sail:279),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("imm"),model/riscv_analysis.sail:279)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs"),model/riscv_analysis.sail:279)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_analysis.sail:279)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_analysis.sail:279)),Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_insts_base.sail:435)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("sop"),model/riscv_insts_base.sail:435)),model/riscv_insts_base.sail:435))]),model/riscv_insts_base.sail:435)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs"),model/riscv_analysis.sail:280)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:280)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:280)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:280)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:280),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:280),[(E_aux(E_id(Id_aux(Id("rs"),model/riscv_analysis.sail:280)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:280)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:281)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:281)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:281)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:281)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:281),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:281),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:281)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:281)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("RTYPEW"),model/riscv_analysis.sail:283),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:283)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:283)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_analysis.sail:283)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("op"),model/riscv_analysis.sail:283)),Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("ropw"),model/riscv_insts_base.sail:473)),model/riscv_insts_base.sail:473))]),model/riscv_insts_base.sail:473)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:284)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:284)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:284),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:284),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:284)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:284)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:285)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:285)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:285)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:285)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:285),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:285),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:285)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:285)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:286)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:286)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:286)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:286)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:286),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:286),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:286)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:286)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("FENCE"),model/riscv_analysis.sail:288),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("pred"),model/riscv_analysis.sail:288)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("succ"),model/riscv_analysis.sail:288)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:562)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("ik"),model/riscv_analysis.sail:289)),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("pred"),model/riscv_analysis.sail:290)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("succ"),model/riscv_analysis.sail:290)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:291),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:291)),model/riscv_analysis.sail:291))]),model/riscv_analysis.sail:291),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:291)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:291)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_analysis.sail:291)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:291),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:291)),model/riscv_analysis.sail:291))]),model/riscv_analysis.sail:291),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:291)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:291)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_analysis.sail:291)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_barrier"),model/riscv_analysis.sail:291),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_rw_rw"),model/riscv_analysis.sail:291),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:291)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:292),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:292)),model/riscv_analysis.sail:292))]),model/riscv_analysis.sail:292),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("10"),model/riscv_analysis.sail:292)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:292),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:292)),model/riscv_analysis.sail:292))]),model/riscv_analysis.sail:292),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:292)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_analysis.sail:292)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_barrier"),model/riscv_analysis.sail:292),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_r_rw"),model/riscv_analysis.sail:292),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:292)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:293),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:293)),model/riscv_analysis.sail:293))]),model/riscv_analysis.sail:293),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:293)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:293)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("10"),model/riscv_analysis.sail:293)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:293),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:293)),model/riscv_analysis.sail:293))]),model/riscv_analysis.sail:293),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:293)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:293)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("10"),model/riscv_analysis.sail:293)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_barrier"),model/riscv_analysis.sail:293),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_r_r"),model/riscv_analysis.sail:293),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:293)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:294),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:294)),model/riscv_analysis.sail:294))]),model/riscv_analysis.sail:294),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:294)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:294)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_analysis.sail:294)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:294),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:294)),model/riscv_analysis.sail:294))]),model/riscv_analysis.sail:294),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:294)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:294)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_analysis.sail:294)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_barrier"),model/riscv_analysis.sail:294),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_rw_w"),model/riscv_analysis.sail:294),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:294)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:295),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:295)),model/riscv_analysis.sail:295))]),model/riscv_analysis.sail:295),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:295)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:295)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_analysis.sail:295)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:295),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:295)),model/riscv_analysis.sail:295))]),model/riscv_analysis.sail:295),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:295)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:295)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_analysis.sail:295)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_barrier"),model/riscv_analysis.sail:295),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_w_w"),model/riscv_analysis.sail:295),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:295)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:296),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:296)),model/riscv_analysis.sail:296))]),model/riscv_analysis.sail:296),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:296)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:296)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_analysis.sail:296)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:296),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:296)),model/riscv_analysis.sail:296))]),model/riscv_analysis.sail:296),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:296)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:296)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_analysis.sail:296)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_barrier"),model/riscv_analysis.sail:296),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_w_rw"),model/riscv_analysis.sail:296),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:296)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:297),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:297)),model/riscv_analysis.sail:297))]),model/riscv_analysis.sail:297),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:297)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:297)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_analysis.sail:297)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:297),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:297)),model/riscv_analysis.sail:297))]),model/riscv_analysis.sail:297),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:297)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:297)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("10"),model/riscv_analysis.sail:297)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_barrier"),model/riscv_analysis.sail:297),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_rw_r"),model/riscv_analysis.sail:297),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:297)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:298),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:298)),model/riscv_analysis.sail:298))]),model/riscv_analysis.sail:298),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:298)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:298)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("10"),model/riscv_analysis.sail:298)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:298),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:298)),model/riscv_analysis.sail:298))]),model/riscv_analysis.sail:298),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:298)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:298)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_analysis.sail:298)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_barrier"),model/riscv_analysis.sail:298),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_r_w"),model/riscv_analysis.sail:298),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:298)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:299),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:299)),model/riscv_analysis.sail:299))]),model/riscv_analysis.sail:299),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:299)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:299)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("01"),model/riscv_analysis.sail:299)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:299),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:299)),model/riscv_analysis.sail:299))]),model/riscv_analysis.sail:299),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:299)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:299)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("10"),model/riscv_analysis.sail:299)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_barrier"),model/riscv_analysis.sail:299),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_w_r"),model/riscv_analysis.sail:299),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:299)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:301),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:301)),model/riscv_analysis.sail:301))]),model/riscv_analysis.sail:301),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:301)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:301)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("00"),model/riscv_analysis.sail:301)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:301),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:301)),model/riscv_analysis.sail:301))]),model/riscv_analysis.sail:301),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:301)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:301)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("00"),model/riscv_analysis.sail:301)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_simple"),model/riscv_analysis.sail:301),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:301)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:562)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_analysis.sail:303),[(E_aux(E_lit(L_aux(L_string("barrier type not implemented in initial_analysis"),model/riscv_analysis.sail:303)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("FENCE_TSO"),model/riscv_analysis.sail:306),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("pred"),model/riscv_analysis.sail:306)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("succ"),model/riscv_analysis.sail:306)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_base.sail:642)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("ik"),model/riscv_analysis.sail:307)),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("pred"),model/riscv_analysis.sail:308)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_id(Id_aux(Id("succ"),model/riscv_analysis.sail:308)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:309),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:309)),model/riscv_analysis.sail:309))]),model/riscv_analysis.sail:309),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:309)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:309)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_analysis.sail:309)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)));(P_aux(P_vector_concat([(P_aux(P_typ(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_analysis.sail:309),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:309)),model/riscv_analysis.sail:309))]),model/riscv_analysis.sail:309),P_aux(P_wild,Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:309)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),model/riscv_analysis.sail:309)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_lit(L_aux(L_bin("11"),model/riscv_analysis.sail:309)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(2),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_barrier"),model/riscv_analysis.sail:309),[(E_aux(E_app(Id_aux(Id("Barrier_RISCV_tso"),model/riscv_analysis.sail:309),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:309)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("barrier_kind"),../sail/lib/regfp.sail:76),[]),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(4),model/riscv_insts_base.sail:642)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),Unknown)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_analysis.sail:310),[(E_aux(E_lit(L_aux(L_string("barrier type not implemented in initial_analysis"),model/riscv_analysis.sail:310)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("FENCEI"),model/riscv_analysis.sail:313),[(P_aux(P_lit(L_aux(L_unit,model/riscv_analysis.sail:313)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("ik"),model/riscv_analysis.sail:314)),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown)),E_aux(E_app(Id_aux(Id("IK_simple"),model/riscv_analysis.sail:314),[(E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:314)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("LOADRES"),model/riscv_analysis.sail:316),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("aq"),model/riscv_analysis.sail:316)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12210#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rl"),model/riscv_analysis.sail:316)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12211#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:316)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_analysis.sail:316)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_analysis.sail:316)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:24)),model/riscv_insts_aext.sail:24));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_aext.sail:24)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:317)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:317)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:317)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:317)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:317),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:317),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:317)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:317)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:318)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:318)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:318)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:318)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:318),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:318),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:318)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:318)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("aR"),model/riscv_analysis.sail:319)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:319)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("ik"),model/riscv_analysis.sail:320)),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("aq"),model/riscv_analysis.sail:320)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12210#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_analysis.sail:320)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12211#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12210#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12211#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:321)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:321)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12210#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12211#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_read"),model/riscv_analysis.sail:321),[(E_aux(E_id(Id_aux(Id("Read_RISCV_reserved"),model/riscv_analysis.sail:321)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:322)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:322)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12210#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12211#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_read"),model/riscv_analysis.sail:322),[(E_aux(E_id(Id_aux(Id("Read_RISCV_reserved_acquire"),model/riscv_analysis.sail:322)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:323)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:323)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12210#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12211#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_read"),model/riscv_analysis.sail:323),[(E_aux(E_id(Id_aux(Id("Read_RISCV_reserved_strong_acquire"),model/riscv_analysis.sail:323)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:324)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:324)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12210#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12211#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_analysis.sail:324),[(E_aux(E_lit(L_aux(L_string("LOADRES type not implemented in initial_analysis"),model/riscv_analysis.sail:324)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("STORECON"),model/riscv_analysis.sail:327),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("aq"),model/riscv_analysis.sail:327)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12217#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rl"),model/riscv_analysis.sail:327)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12218#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:327)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:327)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_analysis.sail:327)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_analysis.sail:327)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:86)),model/riscv_insts_aext.sail:86));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_aext.sail:86)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:328)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:328)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:328)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:328)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:328),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:328),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:328)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:328)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:329)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:329)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:329)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:329)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:329),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:329),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:329)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:329)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:330)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:330)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:330)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("aR"),model/riscv_analysis.sail:330)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:330),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:330),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:330)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("aR"),model/riscv_analysis.sail:330)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:331)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:331)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:331)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:331)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:331),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:331),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:331)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:331)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("ik"),model/riscv_analysis.sail:332)),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("aq"),model/riscv_analysis.sail:332)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12217#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_analysis.sail:332)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12218#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12217#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12218#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:333)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:333)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12217#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12218#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_write"),model/riscv_analysis.sail:333),[(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional"),model/riscv_analysis.sail:333)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:334)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:334)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12217#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12218#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_write"),model/riscv_analysis.sail:334),[(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional_release"),model/riscv_analysis.sail:334)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:335)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:335)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12217#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12218#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_write"),model/riscv_analysis.sail:335),[(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional_strong_release"),model/riscv_analysis.sail:335)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:337)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:337)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12217#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12218#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("internal_error"),model/riscv_analysis.sail:337),[(E_aux(E_lit(L_aux(L_string("STORECON type not implemented in initial_analysis"),model/riscv_analysis.sail:337)),Typ_aux(Typ_id(Id_aux(Id("string"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_types.sail:248))),None))]),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_app(Id_aux(Id("AMO"),model/riscv_analysis.sail:340),[(P_aux(P_tup([(P_aux(P_id(Id_aux(Id("op"),model/riscv_analysis.sail:340)),Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(P_aux(P_id(Id_aux(Id("aq"),model/riscv_analysis.sail:340)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12226#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rl"),model/riscv_analysis.sail:340)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12227#"),Unknown)),Unknown)),Unknown))]),Unknown)));(P_aux(P_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:340)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:340)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(P_aux(P_id(Id_aux(Id("width"),model/riscv_analysis.sail:340)),Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168)));(P_aux(P_id(Id_aux(Id("rd"),model/riscv_analysis.sail:340)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("amoop"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6));(Typ_aux(Typ_id(Id_aux(Id("word_width"),model/riscv_insts_aext.sail:168)),model/riscv_insts_aext.sail:168));(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))]),model/riscv_insts_aext.sail:168)))]),Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_block([(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:341)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:341)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:341)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:341)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:341),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:341),[(E_aux(E_id(Id_aux(Id("rs2"),model/riscv_analysis.sail:341)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:341)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:342)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:342)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:342)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("iR"),model/riscv_analysis.sail:342)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:342),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:342),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:342)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:342)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:343)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:343)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:343)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("aR"),model/riscv_analysis.sail:343)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:343),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:343),[(E_aux(E_id(Id_aux(Id("rs1"),model/riscv_analysis.sail:343)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("aR"),model/riscv_analysis.sail:343)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_if(E_aux(E_app(Id_aux(Id("eq_bits"),../sail/lib/vector_dec.sail:16),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:344)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)));(E_aux(E_lit(L_aux(L_bin("00000"),model/riscv_analysis.sail:344)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),Unknown),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),Unknown)),Unknown));(A_aux(A_order(Ord_aux(Ord_dec,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("bool"),../sail/lib/vector_dec.sail:14)),../sail/lib/vector_dec.sail:14)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:344)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("oR"),model/riscv_analysis.sail:344)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)),E_aux(E_cons(E_aux(E_app(Id_aux(Id("RFull"),model/riscv_analysis.sail:344),[(E_aux(E_app(Id_aux(Id("GPRstr"),model/riscv_analysis.sail:344),[(E_aux(E_id(Id_aux(Id("rd"),model/riscv_analysis.sail:344)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(5),model/riscv_types.sail:17)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)))]),Typ_aux(Typ_id(Id_aux(Id("string"),model/riscv_analysis.sail:9)),model/riscv_analysis.sail:9)))]),Typ_aux(Typ_app(Id_aux(Id("regfp"),../sail/lib/regfp.sail:10),[]),Unknown)),E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:344)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_id(Id_aux(Id("ik"),model/riscv_analysis.sail:345)),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193)),E_aux(E_case(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("aq"),model/riscv_analysis.sail:345)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12226#"),Unknown)),Unknown)),Unknown))]),Unknown)));(E_aux(E_id(Id_aux(Id("rl"),model/riscv_analysis.sail:345)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12227#"),Unknown)),Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12226#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12227#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),[(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:346)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:346)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12226#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12227#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_rmw"),model/riscv_analysis.sail:346),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("Read_RISCV_reserved"),model/riscv_analysis.sail:346)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)));(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional"),model/riscv_analysis.sail:346)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:119)),../sail/lib/regfp.sail:119));(Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:119)),../sail/lib/regfp.sail:119))]),../sail/lib/regfp.sail:119)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:347)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:347)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12226#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12227#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_rmw"),model/riscv_analysis.sail:347),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("Read_RISCV_reserved"),model/riscv_analysis.sail:347)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)));(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional_release"),model/riscv_analysis.sail:347)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:119)),../sail/lib/regfp.sail:119));(Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:119)),../sail/lib/regfp.sail:119))]),../sail/lib/regfp.sail:119)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:348)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_false,model/riscv_analysis.sail:348)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_false,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12226#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12227#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_rmw"),model/riscv_analysis.sail:348),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("Read_RISCV_reserved_acquire"),model/riscv_analysis.sail:348)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)));(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional"),model/riscv_analysis.sail:349)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:119)),../sail/lib/regfp.sail:119));(Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:119)),../sail/lib/regfp.sail:119))]),../sail/lib/regfp.sail:119)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_tup([(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:350)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)));(P_aux(P_lit(L_aux(L_true,model/riscv_analysis.sail:350)),Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_true,Unknown)),Unknown))]),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12226#"),Unknown)),Unknown)),Unknown))]),Unknown));(Typ_aux(Typ_app(Id_aux(Id("atom_bool"),Unknown),[(A_aux(A_bool(NC_aux(NC_var(Kid_aux(Var("'ex12227#"),Unknown)),Unknown)),Unknown))]),Unknown))]),Unknown)),E_aux(E_app(Id_aux(Id("IK_mem_rmw"),model/riscv_analysis.sail:350),[(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("Read_RISCV_reserved_acquire"),model/riscv_analysis.sail:350)),Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:34)),Unknown)));(E_aux(E_id(Id_aux(Id("Write_RISCV_conditional_release"),model/riscv_analysis.sail:351)),Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:49)),Unknown)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_id(Id_aux(Id("read_kind"),../sail/lib/regfp.sail:119)),../sail/lib/regfp.sail:119));(Typ_aux(Typ_id(Id_aux(Id("write_kind"),../sail/lib/regfp.sail:119)),../sail/lib/regfp.sail:119))]),../sail/lib/regfp.sail:119)))]),Typ_aux(Typ_app(Id_aux(Id("instruction_kind"),../sail/lib/regfp.sail:115),[]),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None));(Pat_aux(Pat_exp(P_aux(P_wild,Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189)),E_aux(E_lit(L_aux(L_unit,model/riscv_analysis.sail:354)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown))),None))]),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_tuple([(E_aux(E_id(Id_aux(Id("iR"),model/riscv_analysis.sail:356)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)));(E_aux(E_id(Id_aux(Id("oR"),model/riscv_analysis.sail:356)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)));(E_aux(E_id(Id_aux(Id("aR"),model/riscv_analysis.sail:356)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17)));(E_aux(E_id(Id_aux(Id("Nias"),model/riscv_analysis.sail:356)),Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:25),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25))]),../sail/lib/regfp.sail:25)));(E_aux(E_id(Id_aux(Id("Dia"),model/riscv_analysis.sail:356)),Typ_aux(Typ_id(Id_aux(Id("diafp"),model/riscv_analysis.sail:195)),model/riscv_analysis.sail:195)));(E_aux(E_id(Id_aux(Id("ik"),model/riscv_analysis.sail:356)),Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:193)),model/riscv_analysis.sail:193)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17));(Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17));(Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17));(Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:25),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25))]),../sail/lib/regfp.sail:25));(Typ_aux(Typ_id(Id_aux(Id("diafp"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189));(Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189))]),model/riscv_analysis.sail:189)))]),Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17));(Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17));(Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17));(Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:25),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25))]),../sail/lib/regfp.sail:25));(Typ_aux(Typ_id(Id_aux(Id("diafp"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189));(Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189))]),model/riscv_analysis.sail:189))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("ast"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189))],Typ_aux(Typ_tup([(Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17));(Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17));(Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:17),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regfp"),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17)),../sail/lib/regfp.sail:17))]),../sail/lib/regfp.sail:17));(Typ_aux(Typ_app(Id_aux(Id("list"),../sail/lib/regfp.sail:25),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("niafp"),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25)),../sail/lib/regfp.sail:25))]),../sail/lib/regfp.sail:25));(Typ_aux(Typ_id(Id_aux(Id("diafp"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189));(Typ_aux(Typ_id(Id_aux(Id("instruction_kind"),model/riscv_analysis.sail:189)),model/riscv_analysis.sail:189))]),model/riscv_analysis.sail:189),Effect_aux(Effect_set([]),Unknown)),Unknown)))]),None)));(DEF_spec(VS_val_spec(cast_false,Id_aux(Id("initialize_registers"),Unknown),[],TypSchm_aux(TypSchm_ts(TypQ_aux(TypQ_no_forall,Unknown),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1));(BE_aux(BE_wreg,:1))]),:1)),:1)),:1))));(DEF_fundef(FD_aux(FD_function(Rec_aux(Rec_nonrec,Unknown),Typ_annot_opt_aux(Typ_annot_opt_none,Unknown),Effect_opt_aux(Effect_opt_none,Unknown),[(FCL_aux(FCL_Funcl(Id_aux(Id("initialize_registers"),Unknown),Pat_aux(Pat_exp(P_aux(P_lit(L_aux(L_unit,Unknown)),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)),E_aux(E_block([(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_regs.sail:3)),model/riscv_regs.sail:3),Id_aux(Id("PC"),model/riscv_regs.sail:3)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_regs.sail:4)),model/riscv_regs.sail:4),Id_aux(Id("nextPC"),model/riscv_regs.sail:4)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_regs.sail:7)),model/riscv_regs.sail:7),Id_aux(Id("instbits"),model/riscv_regs.sail:7)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_app(Id_aux(Id("vector"),model/riscv_regs.sail:11),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_regs.sail:11)),model/riscv_regs.sail:11));(A_aux(A_order(Ord_aux(Ord_dec,model/riscv_regs.sail:11)),model/riscv_regs.sail:11));(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:11)),model/riscv_regs.sail:11)),model/riscv_regs.sail:11))]),model/riscv_regs.sail:11),Id_aux(Id("Xs"),model/riscv_regs.sail:11)),Typ_aux(Typ_app(Id_aux(Id("vector"),model/riscv_regs.sail:11),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_regs.sail:11)),model/riscv_regs.sail:11));(A_aux(A_order(Ord_aux(Ord_dec,model/riscv_regs.sail:11)),model/riscv_regs.sail:11));(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_regs.sail:11))]),model/riscv_regs.sail:11)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("vector"),model/riscv_regs.sail:11),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_regs.sail:11)),model/riscv_regs.sail:11));(A_aux(A_order(Ord_aux(Ord_dec,model/riscv_regs.sail:11)),model/riscv_regs.sail:11));(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),model/riscv_regs.sail:11))]),model/riscv_regs.sail:11))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:13)),model/riscv_regs.sail:13),Id_aux(Id("x1"),model/riscv_regs.sail:13)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:14)),model/riscv_regs.sail:14),Id_aux(Id("x2"),model/riscv_regs.sail:14)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:15)),model/riscv_regs.sail:15),Id_aux(Id("x3"),model/riscv_regs.sail:15)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:16)),model/riscv_regs.sail:16),Id_aux(Id("x4"),model/riscv_regs.sail:16)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:17)),model/riscv_regs.sail:17),Id_aux(Id("x5"),model/riscv_regs.sail:17)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:18)),model/riscv_regs.sail:18),Id_aux(Id("x6"),model/riscv_regs.sail:18)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:19)),model/riscv_regs.sail:19),Id_aux(Id("x7"),model/riscv_regs.sail:19)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:20)),model/riscv_regs.sail:20),Id_aux(Id("x8"),model/riscv_regs.sail:20)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:21)),model/riscv_regs.sail:21),Id_aux(Id("x9"),model/riscv_regs.sail:21)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:22)),model/riscv_regs.sail:22),Id_aux(Id("x10"),model/riscv_regs.sail:22)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:23)),model/riscv_regs.sail:23),Id_aux(Id("x11"),model/riscv_regs.sail:23)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:24)),model/riscv_regs.sail:24),Id_aux(Id("x12"),model/riscv_regs.sail:24)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:25)),model/riscv_regs.sail:25),Id_aux(Id("x13"),model/riscv_regs.sail:25)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:26)),model/riscv_regs.sail:26),Id_aux(Id("x14"),model/riscv_regs.sail:26)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:27)),model/riscv_regs.sail:27),Id_aux(Id("x15"),model/riscv_regs.sail:27)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:28)),model/riscv_regs.sail:28),Id_aux(Id("x16"),model/riscv_regs.sail:28)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:29)),model/riscv_regs.sail:29),Id_aux(Id("x17"),model/riscv_regs.sail:29)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:30)),model/riscv_regs.sail:30),Id_aux(Id("x18"),model/riscv_regs.sail:30)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:31)),model/riscv_regs.sail:31),Id_aux(Id("x19"),model/riscv_regs.sail:31)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:32)),model/riscv_regs.sail:32),Id_aux(Id("x20"),model/riscv_regs.sail:32)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:33)),model/riscv_regs.sail:33),Id_aux(Id("x21"),model/riscv_regs.sail:33)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:34)),model/riscv_regs.sail:34),Id_aux(Id("x22"),model/riscv_regs.sail:34)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:35)),model/riscv_regs.sail:35),Id_aux(Id("x23"),model/riscv_regs.sail:35)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:36)),model/riscv_regs.sail:36),Id_aux(Id("x24"),model/riscv_regs.sail:36)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:37)),model/riscv_regs.sail:37),Id_aux(Id("x25"),model/riscv_regs.sail:37)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:38)),model/riscv_regs.sail:38),Id_aux(Id("x26"),model/riscv_regs.sail:38)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:39)),model/riscv_regs.sail:39),Id_aux(Id("x27"),model/riscv_regs.sail:39)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:40)),model/riscv_regs.sail:40),Id_aux(Id("x28"),model/riscv_regs.sail:40)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:41)),model/riscv_regs.sail:41),Id_aux(Id("x29"),model/riscv_regs.sail:41)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:42)),model/riscv_regs.sail:42),Id_aux(Id("x30"),model/riscv_regs.sail:42)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("regtype"),model/riscv_regs.sail:43)),model/riscv_regs.sail:43),Id_aux(Id("x31"),model/riscv_regs.sail:43)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5),Id_aux(Id("cur_privilege"),model/riscv_sys_regs.sail:5)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Privilege"),model/riscv_sys_regs.sail:5)),model/riscv_sys_regs.sail:5))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:9)),model/riscv_sys_regs.sail:9),Id_aux(Id("cur_inst"),model/riscv_sys_regs.sail:9)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71),Id_aux(Id("misa"),model/riscv_sys_regs.sail:71)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Misa"),model/riscv_sys_regs.sail:71)),model/riscv_sys_regs.sail:71))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134),Id_aux(Id("mstatus"),model/riscv_sys_regs.sail:134)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Mstatus"),model/riscv_sys_regs.sail:134)),model/riscv_sys_regs.sail:134))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231),Id_aux(Id("mip"),model/riscv_sys_regs.sail:231)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:231)),model/riscv_sys_regs.sail:231))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232),Id_aux(Id("mie"),model/riscv_sys_regs.sail:232)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:232)),model/riscv_sys_regs.sail:232))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233),Id_aux(Id("mideleg"),model/riscv_sys_regs.sail:233)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Minterrupts"),model/riscv_sys_regs.sail:233)),model/riscv_sys_regs.sail:233))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:295)),model/riscv_sys_regs.sail:295),Id_aux(Id("medeleg"),model/riscv_sys_regs.sail:295)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:295)),model/riscv_sys_regs.sail:295)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Medeleg"),model/riscv_sys_regs.sail:295)),model/riscv_sys_regs.sail:295))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:310)),model/riscv_sys_regs.sail:310),Id_aux(Id("mtvec"),model/riscv_sys_regs.sail:310)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:310)),model/riscv_sys_regs.sail:310)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:310)),model/riscv_sys_regs.sail:310))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:325)),model/riscv_sys_regs.sail:325),Id_aux(Id("mcause"),model/riscv_sys_regs.sail:325)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:325)),model/riscv_sys_regs.sail:325)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:325)),model/riscv_sys_regs.sail:325))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:341)),model/riscv_sys_regs.sail:341),Id_aux(Id("mepc"),model/riscv_sys_regs.sail:341)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:359)),model/riscv_sys_regs.sail:359),Id_aux(Id("mtval"),model/riscv_sys_regs.sail:359)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:360)),model/riscv_sys_regs.sail:360),Id_aux(Id("mscratch"),model/riscv_sys_regs.sail:360)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:371)),model/riscv_sys_regs.sail:371),Id_aux(Id("mcounteren"),model/riscv_sys_regs.sail:371)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:371)),model/riscv_sys_regs.sail:371)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:371)),model/riscv_sys_regs.sail:371))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:372)),model/riscv_sys_regs.sail:372),Id_aux(Id("scounteren"),model/riscv_sys_regs.sail:372)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:372)),model/riscv_sys_regs.sail:372)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Counteren"),model/riscv_sys_regs.sail:372)),model/riscv_sys_regs.sail:372))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:390),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),model/riscv_sys_regs.sail:390))]),model/riscv_sys_regs.sail:390),Id_aux(Id("mcycle"),model/riscv_sys_regs.sail:390)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:390)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:391),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),model/riscv_sys_regs.sail:391))]),model/riscv_sys_regs.sail:391),Id_aux(Id("mtime"),model/riscv_sys_regs.sail:391)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:391)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:404),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),model/riscv_sys_regs.sail:404))]),model/riscv_sys_regs.sail:404),Id_aux(Id("minstret"),model/riscv_sys_regs.sail:404)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_sys_regs.sail:404)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:405)),model/riscv_sys_regs.sail:405),Id_aux(Id("minstret_written"),model/riscv_sys_regs.sail:405)),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:405)),model/riscv_sys_regs.sail:405)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_sys_regs.sail:405)),model/riscv_sys_regs.sail:405))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_sys_regs.sail:414),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:414)),model/riscv_sys_regs.sail:414))]),model/riscv_sys_regs.sail:414),Id_aux(Id("mvendorid"),model/riscv_sys_regs.sail:414)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(32),model/riscv_sys_regs.sail:414)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:415)),model/riscv_sys_regs.sail:415),Id_aux(Id("mimpid"),model/riscv_sys_regs.sail:415)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:416)),model/riscv_sys_regs.sail:416),Id_aux(Id("marchid"),model/riscv_sys_regs.sail:416)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:418)),model/riscv_sys_regs.sail:418),Id_aux(Id("mhartid"),model/riscv_sys_regs.sail:418)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:500)),model/riscv_sys_regs.sail:500),Id_aux(Id("sedeleg"),model/riscv_sys_regs.sail:500)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:500)),model/riscv_sys_regs.sail:500)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Sedeleg"),model/riscv_sys_regs.sail:500)),model/riscv_sys_regs.sail:500))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:575)),model/riscv_sys_regs.sail:575),Id_aux(Id("sideleg"),model/riscv_sys_regs.sail:575)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:575)),model/riscv_sys_regs.sail:575)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Sinterrupts"),model/riscv_sys_regs.sail:575)),model/riscv_sys_regs.sail:575))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:578)),model/riscv_sys_regs.sail:578),Id_aux(Id("stvec"),model/riscv_sys_regs.sail:578)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:578)),model/riscv_sys_regs.sail:578)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_sys_regs.sail:578)),model/riscv_sys_regs.sail:578))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:579)),model/riscv_sys_regs.sail:579),Id_aux(Id("sscratch"),model/riscv_sys_regs.sail:579)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:580)),model/riscv_sys_regs.sail:580),Id_aux(Id("sepc"),model/riscv_sys_regs.sail:580)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:581)),model/riscv_sys_regs.sail:581),Id_aux(Id("scause"),model/riscv_sys_regs.sail:581)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:581)),model/riscv_sys_regs.sail:581)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_sys_regs.sail:581)),model/riscv_sys_regs.sail:581))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:582)),model/riscv_sys_regs.sail:582),Id_aux(Id("stval"),model/riscv_sys_regs.sail:582)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_sys_regs.sail:616)),model/riscv_sys_regs.sail:616),Id_aux(Id("tselect"),model/riscv_sys_regs.sail:616)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:35)),model/riscv_pmp_regs.sail:35),Id_aux(Id("pmp0cfg"),model/riscv_pmp_regs.sail:35)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:35)),model/riscv_pmp_regs.sail:35)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:35)),model/riscv_pmp_regs.sail:35))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:36)),model/riscv_pmp_regs.sail:36),Id_aux(Id("pmp1cfg"),model/riscv_pmp_regs.sail:36)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:36)),model/riscv_pmp_regs.sail:36)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:36)),model/riscv_pmp_regs.sail:36))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:37)),model/riscv_pmp_regs.sail:37),Id_aux(Id("pmp2cfg"),model/riscv_pmp_regs.sail:37)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:37)),model/riscv_pmp_regs.sail:37)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:37)),model/riscv_pmp_regs.sail:37))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:38)),model/riscv_pmp_regs.sail:38),Id_aux(Id("pmp3cfg"),model/riscv_pmp_regs.sail:38)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:38)),model/riscv_pmp_regs.sail:38)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:38)),model/riscv_pmp_regs.sail:38))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:39)),model/riscv_pmp_regs.sail:39),Id_aux(Id("pmp4cfg"),model/riscv_pmp_regs.sail:39)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:39)),model/riscv_pmp_regs.sail:39)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:39)),model/riscv_pmp_regs.sail:39))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:40)),model/riscv_pmp_regs.sail:40),Id_aux(Id("pmp5cfg"),model/riscv_pmp_regs.sail:40)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:40)),model/riscv_pmp_regs.sail:40)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:40)),model/riscv_pmp_regs.sail:40))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:41)),model/riscv_pmp_regs.sail:41),Id_aux(Id("pmp6cfg"),model/riscv_pmp_regs.sail:41)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:41)),model/riscv_pmp_regs.sail:41)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:41)),model/riscv_pmp_regs.sail:41))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:42)),model/riscv_pmp_regs.sail:42),Id_aux(Id("pmp7cfg"),model/riscv_pmp_regs.sail:42)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:42)),model/riscv_pmp_regs.sail:42)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:42)),model/riscv_pmp_regs.sail:42))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:43)),model/riscv_pmp_regs.sail:43),Id_aux(Id("pmp8cfg"),model/riscv_pmp_regs.sail:43)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:43)),model/riscv_pmp_regs.sail:43)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:43)),model/riscv_pmp_regs.sail:43))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:44)),model/riscv_pmp_regs.sail:44),Id_aux(Id("pmp9cfg"),model/riscv_pmp_regs.sail:44)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:44)),model/riscv_pmp_regs.sail:44)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:44)),model/riscv_pmp_regs.sail:44))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:45)),model/riscv_pmp_regs.sail:45),Id_aux(Id("pmp10cfg"),model/riscv_pmp_regs.sail:45)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:45)),model/riscv_pmp_regs.sail:45)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:45)),model/riscv_pmp_regs.sail:45))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:46)),model/riscv_pmp_regs.sail:46),Id_aux(Id("pmp11cfg"),model/riscv_pmp_regs.sail:46)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:46)),model/riscv_pmp_regs.sail:46)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:46)),model/riscv_pmp_regs.sail:46))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:47)),model/riscv_pmp_regs.sail:47),Id_aux(Id("pmp12cfg"),model/riscv_pmp_regs.sail:47)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:47)),model/riscv_pmp_regs.sail:47)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:47)),model/riscv_pmp_regs.sail:47))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:48)),model/riscv_pmp_regs.sail:48),Id_aux(Id("pmp13cfg"),model/riscv_pmp_regs.sail:48)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:48)),model/riscv_pmp_regs.sail:48)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:48)),model/riscv_pmp_regs.sail:48))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:49)),model/riscv_pmp_regs.sail:49),Id_aux(Id("pmp14cfg"),model/riscv_pmp_regs.sail:49)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:49)),model/riscv_pmp_regs.sail:49)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:49)),model/riscv_pmp_regs.sail:49))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:50)),model/riscv_pmp_regs.sail:50),Id_aux(Id("pmp15cfg"),model/riscv_pmp_regs.sail:50)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:50)),model/riscv_pmp_regs.sail:50)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Pmpcfg_ent"),model/riscv_pmp_regs.sail:50)),model/riscv_pmp_regs.sail:50))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:54)),model/riscv_pmp_regs.sail:54),Id_aux(Id("pmpaddr0"),model/riscv_pmp_regs.sail:54)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:55)),model/riscv_pmp_regs.sail:55),Id_aux(Id("pmpaddr1"),model/riscv_pmp_regs.sail:55)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:56)),model/riscv_pmp_regs.sail:56),Id_aux(Id("pmpaddr2"),model/riscv_pmp_regs.sail:56)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:57)),model/riscv_pmp_regs.sail:57),Id_aux(Id("pmpaddr3"),model/riscv_pmp_regs.sail:57)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:58)),model/riscv_pmp_regs.sail:58),Id_aux(Id("pmpaddr4"),model/riscv_pmp_regs.sail:58)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:59)),model/riscv_pmp_regs.sail:59),Id_aux(Id("pmpaddr5"),model/riscv_pmp_regs.sail:59)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:60)),model/riscv_pmp_regs.sail:60),Id_aux(Id("pmpaddr6"),model/riscv_pmp_regs.sail:60)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:61)),model/riscv_pmp_regs.sail:61),Id_aux(Id("pmpaddr7"),model/riscv_pmp_regs.sail:61)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:62)),model/riscv_pmp_regs.sail:62),Id_aux(Id("pmpaddr8"),model/riscv_pmp_regs.sail:62)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:63)),model/riscv_pmp_regs.sail:63),Id_aux(Id("pmpaddr9"),model/riscv_pmp_regs.sail:63)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:64)),model/riscv_pmp_regs.sail:64),Id_aux(Id("pmpaddr10"),model/riscv_pmp_regs.sail:64)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:65)),model/riscv_pmp_regs.sail:65),Id_aux(Id("pmpaddr11"),model/riscv_pmp_regs.sail:65)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:66)),model/riscv_pmp_regs.sail:66),Id_aux(Id("pmpaddr12"),model/riscv_pmp_regs.sail:66)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:67)),model/riscv_pmp_regs.sail:67),Id_aux(Id("pmpaddr13"),model/riscv_pmp_regs.sail:67)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:68)),model/riscv_pmp_regs.sail:68),Id_aux(Id("pmpaddr14"),model/riscv_pmp_regs.sail:68)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_pmp_regs.sail:69)),model/riscv_pmp_regs.sail:69),Id_aux(Id("pmpaddr15"),model/riscv_pmp_regs.sail:69)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_next_regs.sail:79)),model/riscv_next_regs.sail:79),Id_aux(Id("utvec"),model/riscv_next_regs.sail:79)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_next_regs.sail:79)),model/riscv_next_regs.sail:79)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Mtvec"),model/riscv_next_regs.sail:79)),model/riscv_next_regs.sail:79))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_next_regs.sail:80)),model/riscv_next_regs.sail:80),Id_aux(Id("uscratch"),model/riscv_next_regs.sail:80)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_next_regs.sail:81)),model/riscv_next_regs.sail:81),Id_aux(Id("uepc"),model/riscv_next_regs.sail:81)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_next_regs.sail:82)),model/riscv_next_regs.sail:82),Id_aux(Id("ucause"),model/riscv_next_regs.sail:82)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_next_regs.sail:82)),model/riscv_next_regs.sail:82)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("Mcause"),model/riscv_next_regs.sail:82)),model/riscv_next_regs.sail:82))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_next_regs.sail:83)),model/riscv_next_regs.sail:83),Id_aux(Id("utval"),model/riscv_next_regs.sail:83)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_platform.sail:123),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),model/riscv_platform.sail:123))]),model/riscv_platform.sail:123),Id_aux(Id("mtimecmp"),model/riscv_platform.sail:123)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:123)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_platform.sail:267),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),model/riscv_platform.sail:267))]),model/riscv_platform.sail:267),Id_aux(Id("htif_tohost"),model/riscv_platform.sail:267)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:267)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:268)),model/riscv_platform.sail:268),Id_aux(Id("htif_done"),model/riscv_platform.sail:268)),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:268)),model/riscv_platform.sail:268)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_id(Id_aux(Id("bool"),model/riscv_platform.sail:268)),model/riscv_platform.sail:268))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_app(Id_aux(Id("bits"),model/riscv_platform.sail:269),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:269)),model/riscv_platform.sail:269))]),model/riscv_platform.sail:269),Id_aux(Id("htif_exit_code"),model/riscv_platform.sail:269)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_platform.sail:269)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:83),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("TLB39_Entry"),model/riscv_vmem_sv39.sail:83)),model/riscv_vmem_sv39.sail:83)),model/riscv_vmem_sv39.sail:83))]),model/riscv_vmem_sv39.sail:83),Id_aux(Id("tlb39"),model/riscv_vmem_sv39.sail:83)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:83))]),model/riscv_vmem_sv39.sail:83)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv39.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv39.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(39),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:82))]),model/riscv_vmem_sv39.sail:82)),model/riscv_vmem_sv39.sail:83))]),model/riscv_vmem_sv39.sail:83))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:83),[(A_aux(A_typ(Typ_aux(Typ_id(Id_aux(Id("TLB48_Entry"),model/riscv_vmem_sv48.sail:83)),model/riscv_vmem_sv48.sail:83)),model/riscv_vmem_sv48.sail:83))]),model/riscv_vmem_sv48.sail:83),Id_aux(Id("tlb48"),model/riscv_vmem_sv48.sail:83)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:83))]),model/riscv_vmem_sv48.sail:83)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("option"),model/riscv_vmem_sv48.sail:83),[(A_aux(A_typ(Typ_aux(Typ_app(Id_aux(Id("TLB_Entry"),model/riscv_vmem_sv48.sail:82),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(16),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(48),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(56),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82));(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:82))]),model/riscv_vmem_sv48.sail:82)),model/riscv_vmem_sv48.sail:83))]),model/riscv_vmem_sv48.sail:83))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)));(E_aux(E_assign(LEXP_aux(LEXP_cast(Typ_aux(Typ_id(Id_aux(Id("xlenbits"),model/riscv_vmem_rv64.sail:5)),model/riscv_vmem_rv64.sail:5),Id_aux(Id("satp"),model/riscv_vmem_rv64.sail:5)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6)),E_aux(E_lit(L_aux(L_undef,Unknown)),Typ_aux(Typ_app(Id_aux(Id("bitvector"),../sail/lib/vector_dec.sail:6),[(A_aux(A_nexp(Nexp_aux(Nexp_constant(64),model/riscv_xlen64.sail:3)),../sail/lib/vector_dec.sail:6));(A_aux(A_order(Ord_aux(Ord_dec,../sail/lib/vector_dec.sail:6)),../sail/lib/vector_dec.sail:6))]),../sail/lib/vector_dec.sail:6))),Typ_aux(Typ_id(Id_aux(Id("unit"),Unknown)),Unknown)))]),Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))),None)),Typ_aux(Typ_fn([(Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1))],Typ_aux(Typ_id(Id_aux(Id("unit"),:1)),:1),Effect_aux(Effect_set([(BE_aux(BE_undef,:1));(BE_aux(BE_wreg,:1))]),:1)),:1)))]),None)))])
\ No newline at end of file diff --git a/handwritten_support/riscv_extras.lem b/handwritten_support/riscv_extras.lem index 4bc3300..245a7fe 100644 --- a/handwritten_support/riscv_extras.lem +++ b/handwritten_support/riscv_extras.lem @@ -193,6 +193,10 @@ val plat_rom_size : unit -> bitvector let plat_rom_size () = [] declare ocaml target_rep function plat_rom_size = `Platform.rom_size` +val plat_cache_block_size_exp : unit -> bitvector +let plat_cache_block_size_exp () = [] +declare ocaml target_rep function plat_cache_block_size_exp = `Platform.cache_block_size_exp` + val plat_clint_base : unit -> bitvector let plat_clint_base () = [] declare ocaml target_rep function plat_clint_base = `Platform.clint_base` diff --git a/handwritten_support/riscv_extras_sequential.lem b/handwritten_support/riscv_extras_sequential.lem index d113908..5ffe482 100644 --- a/handwritten_support/riscv_extras_sequential.lem +++ b/handwritten_support/riscv_extras_sequential.lem @@ -173,6 +173,10 @@ val plat_rom_size : forall 'a. Size 'a => unit -> bitvector 'a let plat_rom_size () = wordFromInteger 0 declare ocaml target_rep function plat_rom_size = `Platform.rom_size` +val plat_cache_block_size_exp : unit -> integer +let plat_cache_block_size_exp () = wordFromInteger 0 +declare ocaml target_rep function plat_cache_block_size_exp = `Platform.cache_block_size_exp` + val plat_clint_base : forall 'a. Size 'a => unit -> bitvector 'a let plat_clint_base () = wordFromInteger 0 declare ocaml target_rep function plat_clint_base = `Platform.clint_base` diff --git a/model/hex_bits.sail b/model/hex_bits.sail deleted file mode 100644 index 81e25e1..0000000 --- a/model/hex_bits.sail +++ /dev/null @@ -1,124 +0,0 @@ -// Note: This file is temporarily copied here from the Sail compiler. It can -// be removed when Sail 0.18 is released. - -/*==========================================================================*/ -/* Sail */ -/* */ -/* Sail and the Sail architecture models here, comprising all files and */ -/* directories except the ASL-derived Sail code in the aarch64 directory, */ -/* are subject to the BSD two-clause licence below. */ -/* */ -/* The ASL derived parts of the ARMv8.3 specification in */ -/* aarch64/no_vector and aarch64/full are copyright ARM Ltd. */ -/* */ -/* Copyright (c) 2013-2021 */ -/* Kathyrn Gray */ -/* Shaked Flur */ -/* Stephen Kell */ -/* Gabriel Kerneis */ -/* Robert Norton-Wright */ -/* Christopher Pulte */ -/* Peter Sewell */ -/* Alasdair Armstrong */ -/* Brian Campbell */ -/* Thomas Bauereiss */ -/* Anthony Fox */ -/* Jon French */ -/* Dominic Mulligan */ -/* Stephen Kell */ -/* Mark Wassell */ -/* Alastair Reid (Arm Ltd) */ -/* */ -/* All rights reserved. */ -/* */ -/* This work was partially supported by EPSRC grant EP/K008528/1 <a */ -/* href="http://www.cl.cam.ac.uk/users/pes20/rems">REMS: Rigorous */ -/* Engineering for Mainstream Systems</a>, an ARM iCASE award, EPSRC IAA */ -/* KTF funding, and donations from Arm. This project has received */ -/* funding from the European Research Council (ERC) under the European */ -/* Union’s Horizon 2020 research and innovation programme (grant */ -/* agreement No 789108, ELVER). */ -/* */ -/* This software was developed by SRI International and the University of */ -/* Cambridge Computer Laboratory (Department of Computer Science and */ -/* Technology) under DARPA/AFRL contracts FA8650-18-C-7809 ("CIFV") */ -/* and FA8750-10-C-0237 ("CTSRD"). */ -/* */ -/* Redistribution and use in source and binary forms, with or without */ -/* modification, are permitted provided that the following conditions */ -/* are met: */ -/* 1. Redistributions of source code must retain the above copyright */ -/* notice, this list of conditions and the following disclaimer. */ -/* 2. Redistributions in binary form must reproduce the above copyright */ -/* notice, this list of conditions and the following disclaimer in */ -/* the documentation and/or other materials provided with the */ -/* distribution. */ -/* */ -/* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' */ -/* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED */ -/* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A */ -/* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR */ -/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ -/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */ -/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF */ -/* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND */ -/* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */ -/* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */ -/* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF */ -/* SUCH DAMAGE. */ -/*==========================================================================*/ - -$ifndef _HEX_BITS -$define _HEX_BITS - -$include <vector.sail> -$include <string.sail> - -val "parse_hex_bits" : forall 'n, 'n > 0. (int('n), string) -> bits('n) -val "valid_hex_bits" : forall 'n, 'n > 0. (int('n), string) -> bool - -val hex_bits : forall 'n, 'n > 0. bits('n) <-> (int('n), string) - -function hex_bits_forwards(bv) = (length(bv), hex_str(unsigned(bv))) -function hex_bits_forwards_matches(bv) = true - -function hex_bits_backwards(n, str) = parse_hex_bits(n, str) -function hex_bits_backwards_matches(n, str) = valid_hex_bits(n, str) - -mapping hex_bits_1 : bits(1) <-> string = { hex_bits(1, s) <-> s } -mapping hex_bits_2 : bits(2) <-> string = { hex_bits(2, s) <-> s } -mapping hex_bits_3 : bits(3) <-> string = { hex_bits(3, s) <-> s } -mapping hex_bits_4 : bits(4) <-> string = { hex_bits(4, s) <-> s } -mapping hex_bits_5 : bits(5) <-> string = { hex_bits(5, s) <-> s } -mapping hex_bits_6 : bits(6) <-> string = { hex_bits(6, s) <-> s } -mapping hex_bits_7 : bits(7) <-> string = { hex_bits(7, s) <-> s } -mapping hex_bits_8 : bits(8) <-> string = { hex_bits(8, s) <-> s } -mapping hex_bits_9 : bits(9) <-> string = { hex_bits(9, s) <-> s } - -mapping hex_bits_10 : bits(10) <-> string = { hex_bits(10, s) <-> s } -mapping hex_bits_11 : bits(11) <-> string = { hex_bits(11, s) <-> s } -mapping hex_bits_12 : bits(12) <-> string = { hex_bits(12, s) <-> s } -mapping hex_bits_13 : bits(13) <-> string = { hex_bits(13, s) <-> s } -mapping hex_bits_14 : bits(14) <-> string = { hex_bits(14, s) <-> s } -mapping hex_bits_15 : bits(15) <-> string = { hex_bits(15, s) <-> s } -mapping hex_bits_16 : bits(16) <-> string = { hex_bits(16, s) <-> s } -mapping hex_bits_17 : bits(17) <-> string = { hex_bits(17, s) <-> s } -mapping hex_bits_18 : bits(18) <-> string = { hex_bits(18, s) <-> s } -mapping hex_bits_19 : bits(19) <-> string = { hex_bits(19, s) <-> s } - -mapping hex_bits_20 : bits(20) <-> string = { hex_bits(20, s) <-> s } -mapping hex_bits_21 : bits(21) <-> string = { hex_bits(21, s) <-> s } -mapping hex_bits_22 : bits(22) <-> string = { hex_bits(22, s) <-> s } -mapping hex_bits_23 : bits(23) <-> string = { hex_bits(23, s) <-> s } -mapping hex_bits_24 : bits(24) <-> string = { hex_bits(24, s) <-> s } -mapping hex_bits_25 : bits(25) <-> string = { hex_bits(25, s) <-> s } -mapping hex_bits_26 : bits(26) <-> string = { hex_bits(26, s) <-> s } -mapping hex_bits_27 : bits(27) <-> string = { hex_bits(27, s) <-> s } -mapping hex_bits_28 : bits(28) <-> string = { hex_bits(28, s) <-> s } -mapping hex_bits_29 : bits(29) <-> string = { hex_bits(29, s) <-> s } - -mapping hex_bits_30 : bits(30) <-> string = { hex_bits(30, s) <-> s } -mapping hex_bits_31 : bits(31) <-> string = { hex_bits(31, s) <-> s } -mapping hex_bits_32 : bits(32) <-> string = { hex_bits(32, s) <-> s } - -$endif _HEX_BITS diff --git a/model/hex_bits_signed.sail b/model/hex_bits_signed.sail deleted file mode 100644 index 15bbea8..0000000 --- a/model/hex_bits_signed.sail +++ /dev/null @@ -1,141 +0,0 @@ -/*==========================================================================*/ -/* Sail */ -/* */ -/* Sail and the Sail architecture models here, comprising all files and */ -/* directories except the ASL-derived Sail code in the aarch64 directory, */ -/* are subject to the BSD two-clause licence below. */ -/* */ -/* The ASL derived parts of the ARMv8.3 specification in */ -/* aarch64/no_vector and aarch64/full are copyright ARM Ltd. */ -/* */ -/* Copyright (c) 2013-2021 */ -/* Kathyrn Gray */ -/* Shaked Flur */ -/* Stephen Kell */ -/* Gabriel Kerneis */ -/* Robert Norton-Wright */ -/* Christopher Pulte */ -/* Peter Sewell */ -/* Alasdair Armstrong */ -/* Brian Campbell */ -/* Thomas Bauereiss */ -/* Anthony Fox */ -/* Jon French */ -/* Dominic Mulligan */ -/* Stephen Kell */ -/* Mark Wassell */ -/* Alastair Reid (Arm Ltd) */ -/* */ -/* All rights reserved. */ -/* */ -/* This work was partially supported by EPSRC grant EP/K008528/1 <a */ -/* href="http://www.cl.cam.ac.uk/users/pes20/rems">REMS: Rigorous */ -/* Engineering for Mainstream Systems</a>, an ARM iCASE award, EPSRC IAA */ -/* KTF funding, and donations from Arm. This project has received */ -/* funding from the European Research Council (ERC) under the European */ -/* Union’s Horizon 2020 research and innovation programme (grant */ -/* agreement No 789108, ELVER). */ -/* */ -/* This software was developed by SRI International and the University of */ -/* Cambridge Computer Laboratory (Department of Computer Science and */ -/* Technology) under DARPA/AFRL contracts FA8650-18-C-7809 ("CIFV") */ -/* and FA8750-10-C-0237 ("CTSRD"). */ -/* */ -/* Redistribution and use in source and binary forms, with or without */ -/* modification, are permitted provided that the following conditions */ -/* are met: */ -/* 1. Redistributions of source code must retain the above copyright */ -/* notice, this list of conditions and the following disclaimer. */ -/* 2. Redistributions in binary form must reproduce the above copyright */ -/* notice, this list of conditions and the following disclaimer in */ -/* the documentation and/or other materials provided with the */ -/* distribution. */ -/* */ -/* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' */ -/* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED */ -/* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A */ -/* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR */ -/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ -/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */ -/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF */ -/* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND */ -/* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */ -/* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */ -/* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF */ -/* SUCH DAMAGE. */ -/*==========================================================================*/ - -$ifndef _HEX_BITS_SIGNED -$define _HEX_BITS_SIGNED - -$include <vector.sail> -$include <string.sail> - -val parse_hex_bits_signed : forall 'n, 'n > 0. (int('n), string) -> bits('n) -val valid_hex_bits_signed : forall 'n, 'n > 0. (int('n), string) -> bool - -val hex_bits_signed : forall 'n, 'n > 0. bits('n) <-> (int('n), string) - -function hex_bits_signed_forwards(bv) = { - if signed(bv) < 0 - then (length(bv), concat_str("-", hex_str(unsigned(not_vec(bv) + 1)))) - else (length(bv), hex_str(unsigned(bv))) -} -function hex_bits_signed_forwards_matches(bv) = true - -function parse_hex_bits_signed(n, str) = { - if string_take(str, 1) == "-" - then { - let str = string_drop(str, 1); - let bv = parse_hex_bits(n, str); - not_vec(bv) + 1 - } - else parse_hex_bits(n, str) -} - -function valid_hex_bits_signed(n, str) = { - if string_take(str, 1) == "-" - then valid_hex_bits(n, string_drop(str, 1)) - else valid_hex_bits(n, str) -} - -function hex_bits_signed_backwards(n, str) = parse_hex_bits_signed(n, str) -function hex_bits_signed_backwards_matches(n, str) = valid_hex_bits_signed(n, str) - -mapping hex_bits_signed_1 : bits(1) <-> string = { hex_bits_signed(1, s) <-> s } -mapping hex_bits_signed_2 : bits(2) <-> string = { hex_bits_signed(2, s) <-> s } -mapping hex_bits_signed_3 : bits(3) <-> string = { hex_bits_signed(3, s) <-> s } -mapping hex_bits_signed_4 : bits(4) <-> string = { hex_bits_signed(4, s) <-> s } -mapping hex_bits_signed_5 : bits(5) <-> string = { hex_bits_signed(5, s) <-> s } -mapping hex_bits_signed_6 : bits(6) <-> string = { hex_bits_signed(6, s) <-> s } -mapping hex_bits_signed_7 : bits(7) <-> string = { hex_bits_signed(7, s) <-> s } -mapping hex_bits_signed_8 : bits(8) <-> string = { hex_bits_signed(8, s) <-> s } -mapping hex_bits_signed_9 : bits(9) <-> string = { hex_bits_signed(9, s) <-> s } - -mapping hex_bits_signed_10 : bits(10) <-> string = { hex_bits_signed(10, s) <-> s } -mapping hex_bits_signed_11 : bits(11) <-> string = { hex_bits_signed(11, s) <-> s } -mapping hex_bits_signed_12 : bits(12) <-> string = { hex_bits_signed(12, s) <-> s } -mapping hex_bits_signed_13 : bits(13) <-> string = { hex_bits_signed(13, s) <-> s } -mapping hex_bits_signed_14 : bits(14) <-> string = { hex_bits_signed(14, s) <-> s } -mapping hex_bits_signed_15 : bits(15) <-> string = { hex_bits_signed(15, s) <-> s } -mapping hex_bits_signed_16 : bits(16) <-> string = { hex_bits_signed(16, s) <-> s } -mapping hex_bits_signed_17 : bits(17) <-> string = { hex_bits_signed(17, s) <-> s } -mapping hex_bits_signed_18 : bits(18) <-> string = { hex_bits_signed(18, s) <-> s } -mapping hex_bits_signed_19 : bits(19) <-> string = { hex_bits_signed(19, s) <-> s } - -mapping hex_bits_signed_20 : bits(20) <-> string = { hex_bits_signed(20, s) <-> s } -mapping hex_bits_signed_21 : bits(21) <-> string = { hex_bits_signed(21, s) <-> s } -mapping hex_bits_signed_22 : bits(22) <-> string = { hex_bits_signed(22, s) <-> s } -mapping hex_bits_signed_23 : bits(23) <-> string = { hex_bits_signed(23, s) <-> s } -mapping hex_bits_signed_24 : bits(24) <-> string = { hex_bits_signed(24, s) <-> s } -mapping hex_bits_signed_25 : bits(25) <-> string = { hex_bits_signed(25, s) <-> s } -mapping hex_bits_signed_26 : bits(26) <-> string = { hex_bits_signed(26, s) <-> s } -mapping hex_bits_signed_27 : bits(27) <-> string = { hex_bits_signed(27, s) <-> s } -mapping hex_bits_signed_28 : bits(28) <-> string = { hex_bits_signed(28, s) <-> s } -mapping hex_bits_signed_29 : bits(29) <-> string = { hex_bits_signed(29, s) <-> s } - -mapping hex_bits_signed_30 : bits(30) <-> string = { hex_bits_signed(30, s) <-> s } -mapping hex_bits_signed_31 : bits(31) <-> string = { hex_bits_signed(31, s) <-> s } -mapping hex_bits_signed_32 : bits(32) <-> string = { hex_bits_signed(32, s) <-> s } - -$endif _HEX_BITS_SIGNED diff --git a/model/main.sail b/model/main.sail index 1422635..9e0357c 100644 --- a/model/main.sail +++ b/model/main.sail @@ -15,7 +15,7 @@ $ifdef SYMBOLIC $include <elf.sail> -function get_entry_point() = to_bits(sizeof(xlen), elf_entry()) +function get_entry_point() = to_bits(xlen, elf_entry()) $else diff --git a/model/mapping.sail b/model/mapping.sail deleted file mode 100644 index ec8b759..0000000 --- a/model/mapping.sail +++ /dev/null @@ -1,136 +0,0 @@ -// Note: This file is temporarily copied here from the Sail compiler. It can -// be removed when Sail 0.18 is released. - -/*==========================================================================*/ -/* Sail */ -/* */ -/* Sail and the Sail architecture models here, comprising all files and */ -/* directories except the ASL-derived Sail code in the aarch64 directory, */ -/* are subject to the BSD two-clause licence below. */ -/* */ -/* The ASL derived parts of the ARMv8.3 specification in */ -/* aarch64/no_vector and aarch64/full are copyright ARM Ltd. */ -/* */ -/* Copyright (c) 2013-2021 */ -/* Kathyrn Gray */ -/* Shaked Flur */ -/* Stephen Kell */ -/* Gabriel Kerneis */ -/* Robert Norton-Wright */ -/* Christopher Pulte */ -/* Peter Sewell */ -/* Alasdair Armstrong */ -/* Brian Campbell */ -/* Thomas Bauereiss */ -/* Anthony Fox */ -/* Jon French */ -/* Dominic Mulligan */ -/* Stephen Kell */ -/* Mark Wassell */ -/* Alastair Reid (Arm Ltd) */ -/* */ -/* All rights reserved. */ -/* */ -/* This work was partially supported by EPSRC grant EP/K008528/1 <a */ -/* href="http://www.cl.cam.ac.uk/users/pes20/rems">REMS: Rigorous */ -/* Engineering for Mainstream Systems</a>, an ARM iCASE award, EPSRC IAA */ -/* KTF funding, and donations from Arm. This project has received */ -/* funding from the European Research Council (ERC) under the European */ -/* Union’s Horizon 2020 research and innovation programme (grant */ -/* agreement No 789108, ELVER). */ -/* */ -/* This software was developed by SRI International and the University of */ -/* Cambridge Computer Laboratory (Department of Computer Science and */ -/* Technology) under DARPA/AFRL contracts FA8650-18-C-7809 ("CIFV") */ -/* and FA8750-10-C-0237 ("CTSRD"). */ -/* */ -/* Redistribution and use in source and binary forms, with or without */ -/* modification, are permitted provided that the following conditions */ -/* are met: */ -/* 1. Redistributions of source code must retain the above copyright */ -/* notice, this list of conditions and the following disclaimer. */ -/* 2. Redistributions in binary form must reproduce the above copyright */ -/* notice, this list of conditions and the following disclaimer in */ -/* the documentation and/or other materials provided with the */ -/* distribution. */ -/* */ -/* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' */ -/* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED */ -/* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A */ -/* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR */ -/* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ -/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */ -/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF */ -/* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND */ -/* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, */ -/* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */ -/* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF */ -/* SUCH DAMAGE. */ -/*==========================================================================*/ - -$ifndef _MAPPING -$define _MAPPING - -$include <arith.sail> -$include <option.sail> - -val string_take = pure "string_take" : (string, nat) -> string -val string_drop = pure "string_drop" : (string, nat) -> string -val string_length = pure "string_length" : string -> nat -val string_append = pure {coq: "String.append", c: "concat_str", _: "string_append"} : (string, string) -> string -val string_startswith = pure "string_startswith" : (string, string) -> bool - -val n_leading_spaces = pure { coq: "n_leading_spaces_Z" } : string -> nat -function n_leading_spaces s = - match s { - "" => 0, - _ => match string_take(s, 1) { - " " => 1 + n_leading_spaces(string_drop(s, 1)), - _ => 0 - } - } - -/*! -In a string mapping this is treated as `[ ]+`, i.e one or more space -characters. It is printed as a single space `" "`. -*/ -val spc : unit <-> string - -function spc_forwards() = " " -function spc_forwards_matches() = true - -function spc_backwards _ = () -function spc_backwards_matches s = { - let len = string_length(s); - n_leading_spaces(s) == len & len > 0 -} - -/*! -In a string mapping this is treated as `[ ]*`, i.e. zero or more space -characters. It is printed as the empty string. -*/ -val opt_spc : unit <-> string - -function opt_spc_forwards() = "" -function opt_spc_forwards_matches() = true - -function opt_spc_backwards _ = () -function opt_spc_backwards_matches s = n_leading_spaces(s) == string_length(s) - -/*! -Like `opt_spc`, in a string mapping this is treated as `[ ]*`, i.e. zero or more space -characters. It differs however in that it is printed as a single space `" "`. -*/ -val def_spc : unit <-> string - -function def_spc_forwards() = " " -function def_spc_forwards_matches() = true - -function def_spc_backwards _ = () -function def_spc_backwards_matches s = n_leading_spaces(s) == string_length(s) - -mapping sep : unit <-> string = { - () <-> opt_spc() ^ "," ^ def_spc() -} - -$endif diff --git a/model/prelude.sail b/model/prelude.sail index 45d49c0..8c03c58 100644 --- a/model/prelude.sail +++ b/model/prelude.sail @@ -12,11 +12,11 @@ $include <smt.sail> $include <option.sail> $include <arith.sail> $include <string.sail> -$include "mapping.sail" +$include <mapping.sail> $include <vector_dec.sail> $include <generic_equality.sail> -$include "hex_bits.sail" -$include "hex_bits_signed.sail" +$include <hex_bits.sail> +$include <hex_bits_signed.sail> val not_bit : bit -> bit function not_bit(b) = if b == bitone then bitzero else bitone @@ -39,47 +39,41 @@ function bit_str(b: bit) -> string = overload BitStr = {bits_str, bit_str} -val int_power = {ocaml: "int_power", interpreter: "int_power", lem: "pow", coq: "pow", c: "pow_int"} : (int, int) -> int +overload operator ^ = {xor_vec, concat_str} -overload operator ^ = {xor_vec, int_power, concat_str} +val sub_vec = pure {c: "sub_bits", _: "sub_vec"} : forall 'n. (bits('n), bits('n)) -> bits('n) -val sub_vec = {c: "sub_bits", _: "sub_vec"} : forall 'n. (bits('n), bits('n)) -> bits('n) - -val sub_vec_int = {c: "sub_bits_int", _: "sub_vec_int"} : forall 'n. (bits('n), int) -> bits('n) +val sub_vec_int = pure {c: "sub_bits_int", _: "sub_vec_int"} : forall 'n. (bits('n), int) -> bits('n) overload operator - = {sub_vec, sub_vec_int} -val quot_round_zero = {ocaml: "quot_round_zero", interpreter: "quot_round_zero", lem: "hardware_quot", c: "tdiv_int", coq: "Z.quot"} : (int, int) -> int -val rem_round_zero = {ocaml: "rem_round_zero", interpreter: "rem_round_zero", lem: "hardware_mod", c: "tmod_int", coq: "Z.rem"} : (int, int) -> int +val quot_positive_round_zero = pure {interpreter: "quot_round_zero", lem: "hardware_quot", c: "tdiv_int", coq: "Z.quot"} : forall 'n 'm, 'n >= 0 & 'm > 0. (int('n), int('m)) -> int(div('n, 'm)) + +val quot_round_zero = pure {interpreter: "quot_round_zero", lem: "hardware_quot", c: "tdiv_int", coq: "Z.quot"} : (int, int) -> int +val rem_round_zero = pure {interpreter: "rem_round_zero", lem: "hardware_mod", c: "tmod_int", coq: "Z.rem"} : (int, int) -> int /* The following defines % as euclidean modulus */ overload operator % = {emod_int} -val min_int = {ocaml: "min_int", interpreter: "min_int", lem: "min", coq: "min_atom", c: "min_int"} : forall 'x 'y. - (int('x), int('y)) -> {'z, ('x <= 'y & 'z == 'x) | ('x > 'y & 'z == 'y). int('z)} - -val max_int = {ocaml: "max_int", interpreter: "max_int", lem: "max", coq: "max_atom", c: "max_int"} : forall 'x 'y. - (int('x), int('y)) -> {'z, ('x >= 'y & 'z == 'x) | ('x < 'y & 'z == 'y). int('z)} - overload min = {min_int} - overload max = {max_int} -val pow2 = "pow2" : forall 'n. int('n) -> int(2 ^ 'n) +val print_string = pure "print_string" : (string, string) -> unit + +val print_instr = pure {interpreter: "print_endline", c: "print_instr", lem: "print_dbg", _: "print_endline"} : string -> unit +val print_reg = pure {interpreter: "print_endline", c: "print_reg", lem: "print_dbg", _: "print_endline"} : string -> unit +val print_mem = pure {interpreter: "print_endline", c: "print_mem_access", lem: "print_dbg", _: "print_endline"} : string -> unit +val print_platform = pure {interpreter: "print_endline", c: "print_platform", lem: "print_dbg", _: "print_endline"} : string -> unit -val print = "print_endline" : string -> unit -val print_string = "print_string" : (string, string) -> unit +val print_step = pure {c: "print_step"} : unit -> unit -val print_instr = {ocaml: "Platform.print_instr", interpreter: "print_endline", c: "print_instr", lem: "print_dbg", _: "print_endline"} : string -> unit -val print_reg = {ocaml: "Platform.print_reg", interpreter: "print_endline", c: "print_reg", lem: "print_dbg", _: "print_endline"} : string -> unit -val print_mem = {ocaml: "Platform.print_mem_access", interpreter: "print_endline", c: "print_mem_access", lem: "print_dbg", _: "print_endline"} : string -> unit -val print_platform = {ocaml: "Platform.print_platform", interpreter: "print_endline", c: "print_platform", lem: "print_dbg", _: "print_endline"} : string -> unit +function print_step() = () -val get_config_print_instr = {ocaml: "Platform.get_config_print_instr", c:"get_config_print_instr"} : unit -> bool -val get_config_print_reg = {ocaml: "Platform.get_config_print_reg", c:"get_config_print_reg"} : unit -> bool -val get_config_print_mem = {ocaml: "Platform.get_config_print_mem", c:"get_config_print_mem"} : unit -> bool +val get_config_print_instr = pure {c:"get_config_print_instr"} : unit -> bool +val get_config_print_reg = pure {c:"get_config_print_reg"} : unit -> bool +val get_config_print_mem = pure {c:"get_config_print_mem"} : unit -> bool -val get_config_print_platform = {ocaml: "Platform.get_config_print_platform", c:"get_config_print_platform"} : unit -> bool +val get_config_print_platform = pure {c:"get_config_print_platform"} : unit -> bool // defaults for other backends function get_config_print_instr () = false function get_config_print_reg () = false @@ -196,7 +190,7 @@ overload operator >>> = {rotate_bits_right, rotater} overload operator <<< = {rotate_bits_left, rotatel} function reverse_bits_in_byte (xs : bits(8)) -> bits(8) = { - ys : bits(8) = zeros(); + var ys : bits(8) = zeros(); foreach (i from 0 to 7) ys[i] = xs[7-i]; ys @@ -204,7 +198,7 @@ function reverse_bits_in_byte (xs : bits(8)) -> bits(8) = { overload reverse = {reverse_bits_in_byte} -overload operator / = {quot_round_zero} +overload operator / = {quot_positive_round_zero, quot_round_zero} overload operator * = {mult_atom, mult_int} /* helper for vector extension diff --git a/model/riscv_csr_begin.sail b/model/riscv_csr_begin.sail new file mode 100644 index 0000000..0537764 --- /dev/null +++ b/model/riscv_csr_begin.sail @@ -0,0 +1,340 @@ +/*=======================================================================================*/ +/* This Sail RISC-V architecture model, comprising all files and */ +/* directories except where otherwise noted is subject the BSD */ +/* two-clause license in the LICENSE file. */ +/* */ +/* SPDX-License-Identifier: BSD-2-Clause */ +/*=======================================================================================*/ + +/* Mapping of csr addresses to their names. */ + +val csr_name_map : csreg <-> string + +scattered mapping csr_name_map + +// TODO: These csr_name_map definitions should be moved to the files +// corresponding to their extensions rather than all be here. + +/* user floating-point context */ +mapping clause csr_name_map = 0x001 <-> "fflags" +mapping clause csr_name_map = 0x002 <-> "frm" +mapping clause csr_name_map = 0x003 <-> "fcsr" +/* user entropy source */ +mapping clause csr_name_map = 0x015 <-> "seed" +/* counter/timers */ +mapping clause csr_name_map = 0xC00 <-> "cycle" +mapping clause csr_name_map = 0xC01 <-> "time" +mapping clause csr_name_map = 0xC02 <-> "instret" +mapping clause csr_name_map = 0xC03 <-> "hpmcounter3" +mapping clause csr_name_map = 0xC04 <-> "hpmcounter4" +mapping clause csr_name_map = 0xC05 <-> "hpmcounter5" +mapping clause csr_name_map = 0xC06 <-> "hpmcounter6" +mapping clause csr_name_map = 0xC07 <-> "hpmcounter7" +mapping clause csr_name_map = 0xC08 <-> "hpmcounter8" +mapping clause csr_name_map = 0xC09 <-> "hpmcounter9" +mapping clause csr_name_map = 0xC0A <-> "hpmcounter10" +mapping clause csr_name_map = 0xC0B <-> "hpmcounter11" +mapping clause csr_name_map = 0xC0C <-> "hpmcounter12" +mapping clause csr_name_map = 0xC0D <-> "hpmcounter13" +mapping clause csr_name_map = 0xC0E <-> "hpmcounter14" +mapping clause csr_name_map = 0xC0F <-> "hpmcounter15" +mapping clause csr_name_map = 0xC10 <-> "hpmcounter16" +mapping clause csr_name_map = 0xC11 <-> "hpmcounter17" +mapping clause csr_name_map = 0xC12 <-> "hpmcounter18" +mapping clause csr_name_map = 0xC13 <-> "hpmcounter19" +mapping clause csr_name_map = 0xC14 <-> "hpmcounter20" +mapping clause csr_name_map = 0xC15 <-> "hpmcounter21" +mapping clause csr_name_map = 0xC16 <-> "hpmcounter22" +mapping clause csr_name_map = 0xC17 <-> "hpmcounter23" +mapping clause csr_name_map = 0xC18 <-> "hpmcounter24" +mapping clause csr_name_map = 0xC19 <-> "hpmcounter25" +mapping clause csr_name_map = 0xC1A <-> "hpmcounter26" +mapping clause csr_name_map = 0xC1B <-> "hpmcounter27" +mapping clause csr_name_map = 0xC1C <-> "hpmcounter28" +mapping clause csr_name_map = 0xC1D <-> "hpmcounter29" +mapping clause csr_name_map = 0xC1E <-> "hpmcounter30" +mapping clause csr_name_map = 0xC1F <-> "hpmcounter31" + +mapping clause csr_name_map = 0xC80 <-> "cycleh" +mapping clause csr_name_map = 0xC81 <-> "timeh" +mapping clause csr_name_map = 0xC82 <-> "instreth" +mapping clause csr_name_map = 0xC83 <-> "hpmcounter3h" +mapping clause csr_name_map = 0xC84 <-> "hpmcounter4h" +mapping clause csr_name_map = 0xC85 <-> "hpmcounter5h" +mapping clause csr_name_map = 0xC86 <-> "hpmcounter6h" +mapping clause csr_name_map = 0xC87 <-> "hpmcounter7h" +mapping clause csr_name_map = 0xC88 <-> "hpmcounter8h" +mapping clause csr_name_map = 0xC89 <-> "hpmcounter9h" +mapping clause csr_name_map = 0xC8A <-> "hpmcounter10h" +mapping clause csr_name_map = 0xC8B <-> "hpmcounter11h" +mapping clause csr_name_map = 0xC8C <-> "hpmcounter12h" +mapping clause csr_name_map = 0xC8D <-> "hpmcounter13h" +mapping clause csr_name_map = 0xC8E <-> "hpmcounter14h" +mapping clause csr_name_map = 0xC8F <-> "hpmcounter15h" +mapping clause csr_name_map = 0xC90 <-> "hpmcounter16h" +mapping clause csr_name_map = 0xC91 <-> "hpmcounter17h" +mapping clause csr_name_map = 0xC92 <-> "hpmcounter18h" +mapping clause csr_name_map = 0xC93 <-> "hpmcounter19h" +mapping clause csr_name_map = 0xC94 <-> "hpmcounter20h" +mapping clause csr_name_map = 0xC95 <-> "hpmcounter21h" +mapping clause csr_name_map = 0xC96 <-> "hpmcounter22h" +mapping clause csr_name_map = 0xC97 <-> "hpmcounter23h" +mapping clause csr_name_map = 0xC98 <-> "hpmcounter24h" +mapping clause csr_name_map = 0xC99 <-> "hpmcounter25h" +mapping clause csr_name_map = 0xC9A <-> "hpmcounter26h" +mapping clause csr_name_map = 0xC9B <-> "hpmcounter27h" +mapping clause csr_name_map = 0xC9C <-> "hpmcounter28h" +mapping clause csr_name_map = 0xC9D <-> "hpmcounter29h" +mapping clause csr_name_map = 0xC9E <-> "hpmcounter30h" +mapping clause csr_name_map = 0xC9F <-> "hpmcounter31h" + +/* supervisor trap setup */ +mapping clause csr_name_map = 0x100 <-> "sstatus" +mapping clause csr_name_map = 0x104 <-> "sie" +mapping clause csr_name_map = 0x105 <-> "stvec" +mapping clause csr_name_map = 0x106 <-> "scounteren" +/* supervisor trap handling */ +mapping clause csr_name_map = 0x140 <-> "sscratch" +mapping clause csr_name_map = 0x141 <-> "sepc" +mapping clause csr_name_map = 0x142 <-> "scause" +mapping clause csr_name_map = 0x143 <-> "stval" +mapping clause csr_name_map = 0x144 <-> "sip" +/* supervisor protection and translation */ +mapping clause csr_name_map = 0x180 <-> "satp" +/* supervisor envcfg */ +mapping clause csr_name_map = 0x10A <-> "senvcfg" +/* machine information registers */ +mapping clause csr_name_map = 0xF11 <-> "mvendorid" +mapping clause csr_name_map = 0xF12 <-> "marchid" +mapping clause csr_name_map = 0xF13 <-> "mimpid" +mapping clause csr_name_map = 0xF14 <-> "mhartid" +mapping clause csr_name_map = 0xF15 <-> "mconfigptr" +/* machine trap setup */ +mapping clause csr_name_map = 0x300 <-> "mstatus" +mapping clause csr_name_map = 0x301 <-> "misa" +mapping clause csr_name_map = 0x302 <-> "medeleg" +mapping clause csr_name_map = 0x303 <-> "mideleg" +mapping clause csr_name_map = 0x304 <-> "mie" +mapping clause csr_name_map = 0x305 <-> "mtvec" +mapping clause csr_name_map = 0x306 <-> "mcounteren" +mapping clause csr_name_map = 0x320 <-> "mcountinhibit" +/* machine envcfg */ +mapping clause csr_name_map = 0x30A <-> "menvcfg" +mapping clause csr_name_map = 0x31A <-> "menvcfgh" +/* hardware performance counter event selection */ +mapping clause csr_name_map = 0x323 <-> "mhpmevent3" +mapping clause csr_name_map = 0x324 <-> "mhpmevent4" +mapping clause csr_name_map = 0x325 <-> "mhpmevent5" +mapping clause csr_name_map = 0x326 <-> "mhpmevent6" +mapping clause csr_name_map = 0x327 <-> "mhpmevent7" +mapping clause csr_name_map = 0x328 <-> "mhpmevent8" +mapping clause csr_name_map = 0x329 <-> "mhpmevent9" +mapping clause csr_name_map = 0x32A <-> "mhpmevent10" +mapping clause csr_name_map = 0x32B <-> "mhpmevent11" +mapping clause csr_name_map = 0x32C <-> "mhpmevent12" +mapping clause csr_name_map = 0x32D <-> "mhpmevent13" +mapping clause csr_name_map = 0x32E <-> "mhpmevent14" +mapping clause csr_name_map = 0x32F <-> "mhpmevent15" +mapping clause csr_name_map = 0x330 <-> "mhpmevent16" +mapping clause csr_name_map = 0x331 <-> "mhpmevent17" +mapping clause csr_name_map = 0x332 <-> "mhpmevent18" +mapping clause csr_name_map = 0x333 <-> "mhpmevent19" +mapping clause csr_name_map = 0x334 <-> "mhpmevent20" +mapping clause csr_name_map = 0x335 <-> "mhpmevent21" +mapping clause csr_name_map = 0x336 <-> "mhpmevent22" +mapping clause csr_name_map = 0x337 <-> "mhpmevent23" +mapping clause csr_name_map = 0x338 <-> "mhpmevent24" +mapping clause csr_name_map = 0x339 <-> "mhpmevent25" +mapping clause csr_name_map = 0x33A <-> "mhpmevent26" +mapping clause csr_name_map = 0x33B <-> "mhpmevent27" +mapping clause csr_name_map = 0x33C <-> "mhpmevent28" +mapping clause csr_name_map = 0x33D <-> "mhpmevent29" +mapping clause csr_name_map = 0x33E <-> "mhpmevent30" +mapping clause csr_name_map = 0x33F <-> "mhpmevent31" +/* machine trap handling */ +mapping clause csr_name_map = 0x340 <-> "mscratch" +mapping clause csr_name_map = 0x341 <-> "mepc" +mapping clause csr_name_map = 0x342 <-> "mcause" +mapping clause csr_name_map = 0x343 <-> "mtval" +mapping clause csr_name_map = 0x344 <-> "mip" +/* machine protection and translation */ +mapping clause csr_name_map = 0x3A0 <-> "pmpcfg0" +mapping clause csr_name_map = 0x3A1 <-> "pmpcfg1" +mapping clause csr_name_map = 0x3A2 <-> "pmpcfg2" +mapping clause csr_name_map = 0x3A3 <-> "pmpcfg3" +mapping clause csr_name_map = 0x3A4 <-> "pmpcfg4" +mapping clause csr_name_map = 0x3A5 <-> "pmpcfg5" +mapping clause csr_name_map = 0x3A6 <-> "pmpcfg6" +mapping clause csr_name_map = 0x3A7 <-> "pmpcfg7" +mapping clause csr_name_map = 0x3A8 <-> "pmpcfg8" +mapping clause csr_name_map = 0x3A9 <-> "pmpcfg9" +mapping clause csr_name_map = 0x3AA <-> "pmpcfg10" +mapping clause csr_name_map = 0x3AB <-> "pmpcfg11" +mapping clause csr_name_map = 0x3AC <-> "pmpcfg12" +mapping clause csr_name_map = 0x3AD <-> "pmpcfg13" +mapping clause csr_name_map = 0x3AE <-> "pmpcfg14" +mapping clause csr_name_map = 0x3AF <-> "pmpcfg15" +mapping clause csr_name_map = 0x3B0 <-> "pmpaddr0" +mapping clause csr_name_map = 0x3B1 <-> "pmpaddr1" +mapping clause csr_name_map = 0x3B2 <-> "pmpaddr2" +mapping clause csr_name_map = 0x3B3 <-> "pmpaddr3" +mapping clause csr_name_map = 0x3B4 <-> "pmpaddr4" +mapping clause csr_name_map = 0x3B5 <-> "pmpaddr5" +mapping clause csr_name_map = 0x3B6 <-> "pmpaddr6" +mapping clause csr_name_map = 0x3B7 <-> "pmpaddr7" +mapping clause csr_name_map = 0x3B8 <-> "pmpaddr8" +mapping clause csr_name_map = 0x3B9 <-> "pmpaddr9" +mapping clause csr_name_map = 0x3BA <-> "pmpaddr10" +mapping clause csr_name_map = 0x3BB <-> "pmpaddr11" +mapping clause csr_name_map = 0x3BC <-> "pmpaddr12" +mapping clause csr_name_map = 0x3BD <-> "pmpaddr13" +mapping clause csr_name_map = 0x3BE <-> "pmpaddr14" +mapping clause csr_name_map = 0x3BF <-> "pmpaddr15" +mapping clause csr_name_map = 0x3C0 <-> "pmpaddr16" +mapping clause csr_name_map = 0x3C1 <-> "pmpaddr17" +mapping clause csr_name_map = 0x3C2 <-> "pmpaddr18" +mapping clause csr_name_map = 0x3C3 <-> "pmpaddr19" +mapping clause csr_name_map = 0x3C4 <-> "pmpaddr20" +mapping clause csr_name_map = 0x3C5 <-> "pmpaddr21" +mapping clause csr_name_map = 0x3C6 <-> "pmpaddr22" +mapping clause csr_name_map = 0x3C7 <-> "pmpaddr23" +mapping clause csr_name_map = 0x3C8 <-> "pmpaddr24" +mapping clause csr_name_map = 0x3C9 <-> "pmpaddr25" +mapping clause csr_name_map = 0x3CA <-> "pmpaddr26" +mapping clause csr_name_map = 0x3CB <-> "pmpaddr27" +mapping clause csr_name_map = 0x3CC <-> "pmpaddr28" +mapping clause csr_name_map = 0x3CD <-> "pmpaddr29" +mapping clause csr_name_map = 0x3CE <-> "pmpaddr30" +mapping clause csr_name_map = 0x3CF <-> "pmpaddr31" +mapping clause csr_name_map = 0x3D0 <-> "pmpaddr32" +mapping clause csr_name_map = 0x3D1 <-> "pmpaddr33" +mapping clause csr_name_map = 0x3D2 <-> "pmpaddr34" +mapping clause csr_name_map = 0x3D3 <-> "pmpaddr35" +mapping clause csr_name_map = 0x3D4 <-> "pmpaddr36" +mapping clause csr_name_map = 0x3D5 <-> "pmpaddr37" +mapping clause csr_name_map = 0x3D6 <-> "pmpaddr38" +mapping clause csr_name_map = 0x3D7 <-> "pmpaddr39" +mapping clause csr_name_map = 0x3D8 <-> "pmpaddr40" +mapping clause csr_name_map = 0x3D9 <-> "pmpaddr41" +mapping clause csr_name_map = 0x3DA <-> "pmpaddr42" +mapping clause csr_name_map = 0x3DB <-> "pmpaddr43" +mapping clause csr_name_map = 0x3DC <-> "pmpaddr44" +mapping clause csr_name_map = 0x3DD <-> "pmpaddr45" +mapping clause csr_name_map = 0x3DE <-> "pmpaddr46" +mapping clause csr_name_map = 0x3DF <-> "pmpaddr47" +mapping clause csr_name_map = 0x3E0 <-> "pmpaddr48" +mapping clause csr_name_map = 0x3E1 <-> "pmpaddr49" +mapping clause csr_name_map = 0x3E2 <-> "pmpaddr50" +mapping clause csr_name_map = 0x3E3 <-> "pmpaddr51" +mapping clause csr_name_map = 0x3E4 <-> "pmpaddr52" +mapping clause csr_name_map = 0x3E5 <-> "pmpaddr53" +mapping clause csr_name_map = 0x3E6 <-> "pmpaddr54" +mapping clause csr_name_map = 0x3E7 <-> "pmpaddr55" +mapping clause csr_name_map = 0x3E8 <-> "pmpaddr56" +mapping clause csr_name_map = 0x3E9 <-> "pmpaddr57" +mapping clause csr_name_map = 0x3EA <-> "pmpaddr58" +mapping clause csr_name_map = 0x3EB <-> "pmpaddr59" +mapping clause csr_name_map = 0x3EC <-> "pmpaddr60" +mapping clause csr_name_map = 0x3ED <-> "pmpaddr61" +mapping clause csr_name_map = 0x3EE <-> "pmpaddr62" +mapping clause csr_name_map = 0x3EF <-> "pmpaddr63" +/* machine counters/timers */ +mapping clause csr_name_map = 0xB00 <-> "mcycle" +mapping clause csr_name_map = 0xB02 <-> "minstret" +mapping clause csr_name_map = 0xB03 <-> "mhpmcounter3" +mapping clause csr_name_map = 0xB04 <-> "mhpmcounter4" +mapping clause csr_name_map = 0xB05 <-> "mhpmcounter5" +mapping clause csr_name_map = 0xB06 <-> "mhpmcounter6" +mapping clause csr_name_map = 0xB07 <-> "mhpmcounter7" +mapping clause csr_name_map = 0xB08 <-> "mhpmcounter8" +mapping clause csr_name_map = 0xB09 <-> "mhpmcounter9" +mapping clause csr_name_map = 0xB0A <-> "mhpmcounter10" +mapping clause csr_name_map = 0xB0B <-> "mhpmcounter11" +mapping clause csr_name_map = 0xB0C <-> "mhpmcounter12" +mapping clause csr_name_map = 0xB0D <-> "mhpmcounter13" +mapping clause csr_name_map = 0xB0E <-> "mhpmcounter14" +mapping clause csr_name_map = 0xB0F <-> "mhpmcounter15" +mapping clause csr_name_map = 0xB10 <-> "mhpmcounter16" +mapping clause csr_name_map = 0xB11 <-> "mhpmcounter17" +mapping clause csr_name_map = 0xB12 <-> "mhpmcounter18" +mapping clause csr_name_map = 0xB13 <-> "mhpmcounter19" +mapping clause csr_name_map = 0xB14 <-> "mhpmcounter20" +mapping clause csr_name_map = 0xB15 <-> "mhpmcounter21" +mapping clause csr_name_map = 0xB16 <-> "mhpmcounter22" +mapping clause csr_name_map = 0xB17 <-> "mhpmcounter23" +mapping clause csr_name_map = 0xB18 <-> "mhpmcounter24" +mapping clause csr_name_map = 0xB19 <-> "mhpmcounter25" +mapping clause csr_name_map = 0xB1A <-> "mhpmcounter26" +mapping clause csr_name_map = 0xB1B <-> "mhpmcounter27" +mapping clause csr_name_map = 0xB1C <-> "mhpmcounter28" +mapping clause csr_name_map = 0xB1D <-> "mhpmcounter29" +mapping clause csr_name_map = 0xB1E <-> "mhpmcounter30" +mapping clause csr_name_map = 0xB1F <-> "mhpmcounter31" +mapping clause csr_name_map = 0xB80 <-> "mcycleh" +mapping clause csr_name_map = 0xB82 <-> "minstreth" +mapping clause csr_name_map = 0xB83 <-> "mhpmcounter3h" +mapping clause csr_name_map = 0xB84 <-> "mhpmcounter4h" +mapping clause csr_name_map = 0xB85 <-> "mhpmcounter5h" +mapping clause csr_name_map = 0xB86 <-> "mhpmcounter6h" +mapping clause csr_name_map = 0xB87 <-> "mhpmcounter7h" +mapping clause csr_name_map = 0xB88 <-> "mhpmcounter8h" +mapping clause csr_name_map = 0xB89 <-> "mhpmcounter9h" +mapping clause csr_name_map = 0xB8A <-> "mhpmcounter10h" +mapping clause csr_name_map = 0xB8B <-> "mhpmcounter11h" +mapping clause csr_name_map = 0xB8C <-> "mhpmcounter12h" +mapping clause csr_name_map = 0xB8D <-> "mhpmcounter13h" +mapping clause csr_name_map = 0xB8E <-> "mhpmcounter14h" +mapping clause csr_name_map = 0xB8F <-> "mhpmcounter15h" +mapping clause csr_name_map = 0xB90 <-> "mhpmcounter16h" +mapping clause csr_name_map = 0xB91 <-> "mhpmcounter17h" +mapping clause csr_name_map = 0xB92 <-> "mhpmcounter18h" +mapping clause csr_name_map = 0xB93 <-> "mhpmcounter19h" +mapping clause csr_name_map = 0xB94 <-> "mhpmcounter20h" +mapping clause csr_name_map = 0xB95 <-> "mhpmcounter21h" +mapping clause csr_name_map = 0xB96 <-> "mhpmcounter22h" +mapping clause csr_name_map = 0xB97 <-> "mhpmcounter23h" +mapping clause csr_name_map = 0xB98 <-> "mhpmcounter24h" +mapping clause csr_name_map = 0xB99 <-> "mhpmcounter25h" +mapping clause csr_name_map = 0xB9A <-> "mhpmcounter26h" +mapping clause csr_name_map = 0xB9B <-> "mhpmcounter27h" +mapping clause csr_name_map = 0xB9C <-> "mhpmcounter28h" +mapping clause csr_name_map = 0xB9D <-> "mhpmcounter29h" +mapping clause csr_name_map = 0xB9E <-> "mhpmcounter30h" +mapping clause csr_name_map = 0xB9F <-> "mhpmcounter31h" +/* trigger/debug */ +mapping clause csr_name_map = 0x7a0 <-> "tselect" +mapping clause csr_name_map = 0x7a1 <-> "tdata1" +mapping clause csr_name_map = 0x7a2 <-> "tdata2" +mapping clause csr_name_map = 0x7a3 <-> "tdata3" +/* vector csrs */ +mapping clause csr_name_map = 0x008 <-> "vstart" +mapping clause csr_name_map = 0x009 <-> "vxsat" +mapping clause csr_name_map = 0x00A <-> "vxrm" +mapping clause csr_name_map = 0x00F <-> "vcsr" +mapping clause csr_name_map = 0xC20 <-> "vl" +mapping clause csr_name_map = 0xC21 <-> "vtype" +mapping clause csr_name_map = 0xC22 <-> "vlenb" + +val csr_name : csreg -> string +overload to_str = {csr_name} + +/* Extensions may want to add additional CSR registers to the CSR address map. + * These scattered functions support access to such registers. + * + * The default implementation provides access to the CSRs added by the 'N' + * extension. + */ + + +/* returns whether a CSR exists + */ +val is_CSR_defined : (csreg) -> bool +scattered function is_CSR_defined + +/* returns the value of the CSR if it is defined */ +val read_CSR : csreg -> xlenbits +scattered function read_CSR + +/* returns new value (after legalisation) if the CSR is defined */ +val write_CSR : (csreg, xlenbits) -> xlenbits +scattered function write_CSR diff --git a/model/riscv_csr_ext.sail b/model/riscv_csr_end.sail index f034460..5075e2b 100644 --- a/model/riscv_csr_ext.sail +++ b/model/riscv_csr_end.sail @@ -14,11 +14,17 @@ end csr_name_map previously. */ function csr_name(csr) = csr_name_map(csr) -function clause ext_is_CSR_defined(_) = false -end ext_is_CSR_defined +function clause is_CSR_defined(_) = false +end is_CSR_defined -function clause ext_read_CSR _ = None() -end ext_read_CSR +function clause read_CSR(csr) = { + // This should be impossible because is_CSR_defined() should have returned false. + internal_error(__FILE__, __LINE__, "Read from CSR that does not exist: " ^ bits_str(csr)); +} +end read_CSR -function clause ext_write_CSR (_, _) = None() -end ext_write_CSR +function clause write_CSR(csr, _) = { + // This should be impossible because is_CSR_defined() should have returned false. + internal_error(__FILE__, __LINE__, "Write to CSR that does not exist: " ^ bits_str(csr)); +} +end write_CSR diff --git a/model/riscv_csr_map.sail b/model/riscv_csr_map.sail deleted file mode 100644 index 6478919..0000000 --- a/model/riscv_csr_map.sail +++ /dev/null @@ -1,202 +0,0 @@ -/*=======================================================================================*/ -/* This Sail RISC-V architecture model, comprising all files and */ -/* directories except where otherwise noted is subject the BSD */ -/* two-clause license in the LICENSE file. */ -/* */ -/* SPDX-License-Identifier: BSD-2-Clause */ -/*=======================================================================================*/ - -/* Mapping of csr addresses to their names. */ - -val csr_name_map : csreg <-> string - -scattered mapping csr_name_map - -/* user trap setup */ -mapping clause csr_name_map = 0x000 <-> "ustatus" -mapping clause csr_name_map = 0x004 <-> "uie" -mapping clause csr_name_map = 0x005 <-> "utvec" -/* user trap handling */ -mapping clause csr_name_map = 0x040 <-> "uscratch" -mapping clause csr_name_map = 0x041 <-> "uepc" -mapping clause csr_name_map = 0x042 <-> "ucause" -mapping clause csr_name_map = 0x043 <-> "utval" -mapping clause csr_name_map = 0x044 <-> "uip" -/* user floating-point context */ -mapping clause csr_name_map = 0x001 <-> "fflags" -mapping clause csr_name_map = 0x002 <-> "frm" -mapping clause csr_name_map = 0x003 <-> "fcsr" -/* user entropy source */ -mapping clause csr_name_map = 0x015 <-> "seed" -/* counter/timers */ -mapping clause csr_name_map = 0xC00 <-> "cycle" -mapping clause csr_name_map = 0xC01 <-> "time" -mapping clause csr_name_map = 0xC02 <-> "instret" -mapping clause csr_name_map = 0xC80 <-> "cycleh" -mapping clause csr_name_map = 0xC81 <-> "timeh" -mapping clause csr_name_map = 0xC82 <-> "instreth" -/* TODO: other hpm counters */ -/* supervisor trap setup */ -mapping clause csr_name_map = 0x100 <-> "sstatus" -mapping clause csr_name_map = 0x102 <-> "sedeleg" -mapping clause csr_name_map = 0x103 <-> "sideleg" -mapping clause csr_name_map = 0x104 <-> "sie" -mapping clause csr_name_map = 0x105 <-> "stvec" -mapping clause csr_name_map = 0x106 <-> "scounteren" -/* supervisor trap handling */ -mapping clause csr_name_map = 0x140 <-> "sscratch" -mapping clause csr_name_map = 0x141 <-> "sepc" -mapping clause csr_name_map = 0x142 <-> "scause" -mapping clause csr_name_map = 0x143 <-> "stval" -mapping clause csr_name_map = 0x144 <-> "sip" -/* supervisor protection and translation */ -mapping clause csr_name_map = 0x180 <-> "satp" -/* supervisor envcfg */ -mapping clause csr_name_map = 0x10A <-> "senvcfg" -/* machine information registers */ -mapping clause csr_name_map = 0xF11 <-> "mvendorid" -mapping clause csr_name_map = 0xF12 <-> "marchid" -mapping clause csr_name_map = 0xF13 <-> "mimpid" -mapping clause csr_name_map = 0xF14 <-> "mhartid" -mapping clause csr_name_map = 0xF15 <-> "mconfigptr" -/* machine trap setup */ -mapping clause csr_name_map = 0x300 <-> "mstatus" -mapping clause csr_name_map = 0x301 <-> "misa" -mapping clause csr_name_map = 0x302 <-> "medeleg" -mapping clause csr_name_map = 0x303 <-> "mideleg" -mapping clause csr_name_map = 0x304 <-> "mie" -mapping clause csr_name_map = 0x305 <-> "mtvec" -mapping clause csr_name_map = 0x306 <-> "mcounteren" -mapping clause csr_name_map = 0x320 <-> "mcountinhibit" -/* machine envcfg */ -mapping clause csr_name_map = 0x30A <-> "menvcfg" -/* machine trap handling */ -mapping clause csr_name_map = 0x340 <-> "mscratch" -mapping clause csr_name_map = 0x341 <-> "mepc" -mapping clause csr_name_map = 0x342 <-> "mcause" -mapping clause csr_name_map = 0x343 <-> "mtval" -mapping clause csr_name_map = 0x344 <-> "mip" -/* machine protection and translation */ -mapping clause csr_name_map = 0x3A0 <-> "pmpcfg0" -mapping clause csr_name_map = 0x3A1 <-> "pmpcfg1" -mapping clause csr_name_map = 0x3A2 <-> "pmpcfg2" -mapping clause csr_name_map = 0x3A3 <-> "pmpcfg3" -mapping clause csr_name_map = 0x3A4 <-> "pmpcfg4" -mapping clause csr_name_map = 0x3A5 <-> "pmpcfg5" -mapping clause csr_name_map = 0x3A6 <-> "pmpcfg6" -mapping clause csr_name_map = 0x3A7 <-> "pmpcfg7" -mapping clause csr_name_map = 0x3A8 <-> "pmpcfg8" -mapping clause csr_name_map = 0x3A9 <-> "pmpcfg9" -mapping clause csr_name_map = 0x3AA <-> "pmpcfg10" -mapping clause csr_name_map = 0x3AB <-> "pmpcfg11" -mapping clause csr_name_map = 0x3AC <-> "pmpcfg12" -mapping clause csr_name_map = 0x3AD <-> "pmpcfg13" -mapping clause csr_name_map = 0x3AE <-> "pmpcfg14" -mapping clause csr_name_map = 0x3AF <-> "pmpcfg15" -mapping clause csr_name_map = 0x3B0 <-> "pmpaddr0" -mapping clause csr_name_map = 0x3B1 <-> "pmpaddr1" -mapping clause csr_name_map = 0x3B2 <-> "pmpaddr2" -mapping clause csr_name_map = 0x3B3 <-> "pmpaddr3" -mapping clause csr_name_map = 0x3B4 <-> "pmpaddr4" -mapping clause csr_name_map = 0x3B5 <-> "pmpaddr5" -mapping clause csr_name_map = 0x3B6 <-> "pmpaddr6" -mapping clause csr_name_map = 0x3B7 <-> "pmpaddr7" -mapping clause csr_name_map = 0x3B8 <-> "pmpaddr8" -mapping clause csr_name_map = 0x3B9 <-> "pmpaddr9" -mapping clause csr_name_map = 0x3BA <-> "pmpaddr10" -mapping clause csr_name_map = 0x3BB <-> "pmpaddr11" -mapping clause csr_name_map = 0x3BC <-> "pmpaddr12" -mapping clause csr_name_map = 0x3BD <-> "pmpaddr13" -mapping clause csr_name_map = 0x3BE <-> "pmpaddr14" -mapping clause csr_name_map = 0x3BF <-> "pmpaddr15" -mapping clause csr_name_map = 0x3C0 <-> "pmpaddr16" -mapping clause csr_name_map = 0x3C1 <-> "pmpaddr17" -mapping clause csr_name_map = 0x3C2 <-> "pmpaddr18" -mapping clause csr_name_map = 0x3C3 <-> "pmpaddr19" -mapping clause csr_name_map = 0x3C4 <-> "pmpaddr20" -mapping clause csr_name_map = 0x3C5 <-> "pmpaddr21" -mapping clause csr_name_map = 0x3C6 <-> "pmpaddr22" -mapping clause csr_name_map = 0x3C7 <-> "pmpaddr23" -mapping clause csr_name_map = 0x3C8 <-> "pmpaddr24" -mapping clause csr_name_map = 0x3C9 <-> "pmpaddr25" -mapping clause csr_name_map = 0x3CA <-> "pmpaddr26" -mapping clause csr_name_map = 0x3CB <-> "pmpaddr27" -mapping clause csr_name_map = 0x3CC <-> "pmpaddr28" -mapping clause csr_name_map = 0x3CD <-> "pmpaddr29" -mapping clause csr_name_map = 0x3CE <-> "pmpaddr30" -mapping clause csr_name_map = 0x3CF <-> "pmpaddr31" -mapping clause csr_name_map = 0x3D0 <-> "pmpaddr32" -mapping clause csr_name_map = 0x3D1 <-> "pmpaddr33" -mapping clause csr_name_map = 0x3D2 <-> "pmpaddr34" -mapping clause csr_name_map = 0x3D3 <-> "pmpaddr35" -mapping clause csr_name_map = 0x3D4 <-> "pmpaddr36" -mapping clause csr_name_map = 0x3D5 <-> "pmpaddr37" -mapping clause csr_name_map = 0x3D6 <-> "pmpaddr38" -mapping clause csr_name_map = 0x3D7 <-> "pmpaddr39" -mapping clause csr_name_map = 0x3D8 <-> "pmpaddr40" -mapping clause csr_name_map = 0x3D9 <-> "pmpaddr41" -mapping clause csr_name_map = 0x3DA <-> "pmpaddr42" -mapping clause csr_name_map = 0x3DB <-> "pmpaddr43" -mapping clause csr_name_map = 0x3DC <-> "pmpaddr44" -mapping clause csr_name_map = 0x3DD <-> "pmpaddr45" -mapping clause csr_name_map = 0x3DE <-> "pmpaddr46" -mapping clause csr_name_map = 0x3DF <-> "pmpaddr47" -mapping clause csr_name_map = 0x3E0 <-> "pmpaddr48" -mapping clause csr_name_map = 0x3E1 <-> "pmpaddr49" -mapping clause csr_name_map = 0x3E2 <-> "pmpaddr50" -mapping clause csr_name_map = 0x3E3 <-> "pmpaddr51" -mapping clause csr_name_map = 0x3E4 <-> "pmpaddr52" -mapping clause csr_name_map = 0x3E5 <-> "pmpaddr53" -mapping clause csr_name_map = 0x3E6 <-> "pmpaddr54" -mapping clause csr_name_map = 0x3E7 <-> "pmpaddr55" -mapping clause csr_name_map = 0x3E8 <-> "pmpaddr56" -mapping clause csr_name_map = 0x3E9 <-> "pmpaddr57" -mapping clause csr_name_map = 0x3EA <-> "pmpaddr58" -mapping clause csr_name_map = 0x3EB <-> "pmpaddr59" -mapping clause csr_name_map = 0x3EC <-> "pmpaddr60" -mapping clause csr_name_map = 0x3ED <-> "pmpaddr61" -mapping clause csr_name_map = 0x3EE <-> "pmpaddr62" -mapping clause csr_name_map = 0x3EF <-> "pmpaddr63" -/* machine counters/timers */ -mapping clause csr_name_map = 0xB00 <-> "mcycle" -mapping clause csr_name_map = 0xB02 <-> "minstret" -mapping clause csr_name_map = 0xB80 <-> "mcycleh" -mapping clause csr_name_map = 0xB82 <-> "minstreth" -/* TODO: other hpm counters and events */ -/* trigger/debug */ -mapping clause csr_name_map = 0x7a0 <-> "tselect" -mapping clause csr_name_map = 0x7a1 <-> "tdata1" -mapping clause csr_name_map = 0x7a2 <-> "tdata2" -mapping clause csr_name_map = 0x7a3 <-> "tdata3" -/* vector csrs */ -mapping clause csr_name_map = 0x008 <-> "vstart" -mapping clause csr_name_map = 0x009 <-> "vxsat" -mapping clause csr_name_map = 0x00A <-> "vxrm" -mapping clause csr_name_map = 0x00F <-> "vcsr" -mapping clause csr_name_map = 0xC20 <-> "vl" -mapping clause csr_name_map = 0xC21 <-> "vtype" -mapping clause csr_name_map = 0xC22 <-> "vlenb" - -val csr_name : csreg -> string -overload to_str = {csr_name} - -/* Extensions may want to add additional CSR registers to the CSR address map. - * These scattered functions support access to such registers. - * - * The default implementation provides access to the CSRs added by the 'N' - * extension. - */ - - -/* returns whether a CSR exists - */ -val ext_is_CSR_defined : (csreg) -> bool -scattered function ext_is_CSR_defined - -/* returns the value of the CSR if it is defined */ -val ext_read_CSR : csreg -> option(xlenbits) -scattered function ext_read_CSR - -/* returns new value (after legalisation) if the CSR is defined */ -val ext_write_CSR : (csreg, xlenbits) -> option(xlenbits) -scattered function ext_write_CSR diff --git a/model/riscv_errors.sail b/model/riscv_errors.sail new file mode 100644 index 0000000..fd12bca --- /dev/null +++ b/model/riscv_errors.sail @@ -0,0 +1,23 @@ +/*=======================================================================================*/ +/* This Sail RISC-V architecture model, comprising all files and */ +/* directories except where otherwise noted is subject the BSD */ +/* two-clause license in the LICENSE file. */ +/* */ +/* SPDX-License-Identifier: BSD-2-Clause */ +/*=======================================================================================*/ + +/* model-internal exceptions */ + +union exception = { + Error_not_implemented : string, + Error_internal_error : unit +} + +val not_implemented : forall ('a : Type). string -> 'a +function not_implemented message = throw(Error_not_implemented(message)) + +val internal_error : forall ('a : Type). (string, int, string) -> 'a +function internal_error(file, line, s) = { + assert (false, file ^ ":" ^ dec_str(line) ^ ": " ^ s); + throw Error_internal_error() +} diff --git a/model/riscv_fdext_control.sail b/model/riscv_fdext_control.sail index 11b8e42..a1de45c 100644 --- a/model/riscv_fdext_control.sail +++ b/model/riscv_fdext_control.sail @@ -19,23 +19,23 @@ enum clause extension = Ext_F function clause extensionEnabled(Ext_F) = (misa[F] == 0b1) & (mstatus[FS] != 0b00) enum clause extension = Ext_D -function clause extensionEnabled(Ext_D) = (misa[D] == 0b1) & (mstatus[FS] != 0b00) & sizeof(flen) >= 64 +function clause extensionEnabled(Ext_D) = (misa[D] == 0b1) & (mstatus[FS] != 0b00) & flen >= 64 enum clause extension = Ext_Zfinx function clause extensionEnabled(Ext_Zfinx) = sys_enable_zfinx() -/* val clause ext_is_CSR_defined : (csreg) -> bool */ +/* val clause is_CSR_defined : (csreg) -> bool */ -function clause ext_is_CSR_defined (0x001) = extensionEnabled(Ext_F) | extensionEnabled(Ext_Zfinx) -function clause ext_is_CSR_defined (0x002) = extensionEnabled(Ext_F) | extensionEnabled(Ext_Zfinx) -function clause ext_is_CSR_defined (0x003) = extensionEnabled(Ext_F) | extensionEnabled(Ext_Zfinx) +function clause is_CSR_defined (0x001) = extensionEnabled(Ext_F) | extensionEnabled(Ext_Zfinx) +function clause is_CSR_defined (0x002) = extensionEnabled(Ext_F) | extensionEnabled(Ext_Zfinx) +function clause is_CSR_defined (0x003) = extensionEnabled(Ext_F) | extensionEnabled(Ext_Zfinx) -function clause ext_read_CSR (0x001) = Some(zero_extend(fcsr[FFLAGS])) -function clause ext_read_CSR (0x002) = Some(zero_extend(fcsr[FRM])) -function clause ext_read_CSR (0x003) = Some(zero_extend(fcsr.bits)) +function clause read_CSR (0x001) = zero_extend(fcsr[FFLAGS]) +function clause read_CSR (0x002) = zero_extend(fcsr[FRM]) +function clause read_CSR (0x003) = zero_extend(fcsr.bits) -function clause ext_write_CSR (0x001, value) = { ext_write_fcsr(fcsr[FRM], value[4..0]); Some(zero_extend(fcsr[FFLAGS])) } -function clause ext_write_CSR (0x002, value) = { ext_write_fcsr(value[2..0], fcsr[FFLAGS]); Some(zero_extend(fcsr[FRM])) } -function clause ext_write_CSR (0x003, value) = { ext_write_fcsr(value[7..5], value[4..0]); Some(zero_extend(fcsr.bits)) } +function clause write_CSR (0x001, value) = { write_fcsr(fcsr[FRM], value[4..0]); zero_extend(fcsr[FFLAGS]) } +function clause write_CSR (0x002, value) = { write_fcsr(value[2..0], fcsr[FFLAGS]); zero_extend(fcsr[FRM]) } +function clause write_CSR (0x003, value) = { write_fcsr(value[7..5], value[4..0]); zero_extend(fcsr.bits) } /* **************************************************************** */ diff --git a/model/riscv_fdext_regs.sail b/model/riscv_fdext_regs.sail index 63652da..bb68601 100644 --- a/model/riscv_fdext_regs.sail +++ b/model/riscv_fdext_regs.sail @@ -30,13 +30,13 @@ function canonical_NaN_D() -> bits(64) = 0x_7ff8_0000_0000_0000 val nan_box_H : bits(16) -> flenbits function nan_box_H val_16b = - if (sizeof(flen) == 32) + if (flen == 32) then 0x_FFFF @ val_16b else 0x_FFFF_FFFF_FFFF @ val_16b val nan_unbox_H : flenbits -> bits(16) function nan_unbox_H regval = - if (sizeof(flen) == 32) + if (flen == 32) then if regval [31..16] == 0x_FFFF then regval [15..0] else canonical_NaN_H() @@ -47,7 +47,7 @@ function nan_unbox_H regval = val nan_box_S : bits(32) -> flenbits function nan_box_S val_32b = { assert(sys_enable_fdext()); - if (sizeof(flen) == 32) + if (flen == 32) then val_32b else 0x_FFFF_FFFF @ val_32b } @@ -55,7 +55,7 @@ function nan_box_S val_32b = { val nan_unbox_S : flenbits -> bits(32) function nan_unbox_S regval = { assert(sys_enable_fdext()); - if (sizeof(flen) == 32) + if (flen == 32) then regval else if regval [63..32] == 0x_FFFF_FFFF then regval [31..0] @@ -210,42 +210,42 @@ overload F = {rF_bits, wF_bits, rF, wF} val rF_H : regidx -> bits(16) function rF_H(i) = { - assert(sizeof(flen) >= 16); + assert(flen >= 16); assert(sys_enable_fdext() & not(sys_enable_zfinx())); nan_unbox(F(i)) } val wF_H : (regidx, bits(16)) -> unit function wF_H(i, data) = { - assert(sizeof(flen) >= 16); + assert(flen >= 16); assert(sys_enable_fdext() & not(sys_enable_zfinx())); F(i) = nan_box(data) } val rF_S : regidx -> bits(32) function rF_S(i) = { - assert(sizeof(flen) >= 32); + assert(flen >= 32); assert(sys_enable_fdext() & not(sys_enable_zfinx())); nan_unbox(F(i)) } val wF_S : (regidx, bits(32)) -> unit function wF_S(i, data) = { - assert(sizeof(flen) >= 32); + assert(flen >= 32); assert(sys_enable_fdext() & not(sys_enable_zfinx())); F(i) = nan_box(data) } val rF_D : regidx -> bits(64) function rF_D(i) = { - assert(sizeof(flen) >= 64); + assert(flen >= 64); assert(sys_enable_fdext() & not(sys_enable_zfinx())); F(i) } val wF_D : (regidx, bits(64)) -> unit function wF_D(i, data) = { - assert(sizeof(flen) >= 64); + assert(flen >= 64); assert(sys_enable_fdext() & not(sys_enable_zfinx())); F(i) = data } @@ -256,7 +256,7 @@ overload F_D = { rF_D, wF_D } val rF_or_X_H : regidx -> bits(16) function rF_or_X_H(i) = { - assert(sizeof(flen) >= 16); + assert(flen >= 16); assert(sys_enable_fdext() != sys_enable_zfinx()); if sys_enable_fdext() then F_H(i) @@ -265,7 +265,7 @@ function rF_or_X_H(i) = { val rF_or_X_S : regidx -> bits(32) function rF_or_X_S(i) = { - assert(sizeof(flen) >= 32); + assert(flen >= 32); assert(sys_enable_fdext() != sys_enable_zfinx()); if sys_enable_fdext() then F_S(i) @@ -274,11 +274,11 @@ function rF_or_X_S(i) = { val rF_or_X_D : regidx -> bits(64) function rF_or_X_D(i) = { - assert(sizeof(flen) >= 64); + assert(flen >= 64); assert(sys_enable_fdext() != sys_enable_zfinx()); if sys_enable_fdext() then F_D(i) - else if sizeof(xlen) >= 64 + else if xlen >= 64 then X(i)[63..0] else { assert(i[0] == bitzero); @@ -288,7 +288,7 @@ function rF_or_X_D(i) = { val wF_or_X_H : (regidx, bits(16)) -> unit function wF_or_X_H(i, data) = { - assert(sizeof(flen) >= 16); + assert(flen >= 16); assert(sys_enable_fdext() != sys_enable_zfinx()); if sys_enable_fdext() then F_H(i) = data @@ -297,7 +297,7 @@ function wF_or_X_H(i, data) = { val wF_or_X_S : (regidx, bits(32)) -> unit function wF_or_X_S(i, data) = { - assert(sizeof(flen) >= 32); + assert(flen >= 32); assert(sys_enable_fdext() != sys_enable_zfinx()); if sys_enable_fdext() then F_S(i) = data @@ -306,11 +306,11 @@ function wF_or_X_S(i, data) = { val wF_or_X_D : (regidx, bits(64)) -> unit function wF_or_X_D(i, data) = { - assert (sizeof(flen) >= 64); + assert (flen >= 64); assert(sys_enable_fdext() != sys_enable_zfinx()); if sys_enable_fdext() then F_D(i) = data - else if sizeof(xlen) >= 64 + else if xlen >= 64 then X(i) = sign_extend(data) else { assert (i[0] == bitzero); @@ -419,8 +419,8 @@ bitfield Fcsr : bits(32) = { register fcsr : Fcsr -val ext_write_fcsr : (bits(3), bits(5)) -> unit -function ext_write_fcsr (frm, fflags) = { +val write_fcsr : (bits(3), bits(5)) -> unit +function write_fcsr (frm, fflags) = { fcsr[FRM] = frm; /* Note: frm can be an illegal value, 101, 110, 111 */ fcsr[FFLAGS] = fflags; dirty_fd_context_if_present(); diff --git a/model/riscv_fetch.sail b/model/riscv_fetch.sail index 78401c8..170c387 100644 --- a/model/riscv_fetch.sail +++ b/model/riscv_fetch.sail @@ -19,7 +19,7 @@ function fetch() -> FetchResult = match ext_fetch_check_pc(PC, PC) { Ext_FetchAddr_Error(e) => F_Ext_Error(e), Ext_FetchAddr_OK(use_pc) => { - if (use_pc[0] != bitzero | (use_pc[1] != bitzero & not(extensionEnabled(Ext_C)))) + if (use_pc[0] != bitzero | (use_pc[1] != bitzero & not(extensionEnabled(Ext_Zca)))) then F_Error(E_Fetch_Addr_Align(), PC) else match translateAddr(use_pc, Execute()) { TR_Failure(e, _) => F_Error(e, PC), @@ -35,7 +35,7 @@ function fetch() -> FetchResult = then F_RVC(ilo) else { /* fetch PC check for the next instruction granule */ - PC_hi : xlenbits = PC + 2; + let PC_hi = PC + 2; match ext_fetch_check_pc(PC, PC_hi) { Ext_FetchAddr_Error(e) => F_Ext_Error(e), Ext_FetchAddr_OK(use_pc_hi) => { diff --git a/model/riscv_fetch_rvfi.sail b/model/riscv_fetch_rvfi.sail index cdb8f94..b81d439 100644 --- a/model/riscv_fetch_rvfi.sail +++ b/model/riscv_fetch_rvfi.sail @@ -17,18 +17,18 @@ function fetch() -> FetchResult = { Ext_FetchAddr_Error(e) => F_Ext_Error(e), Ext_FetchAddr_OK(use_pc) => { /* then check PC alignment */ - if (use_pc[0] != bitzero | (use_pc[1] != bitzero & not(extensionEnabled(Ext_C)))) + if (use_pc[0] != bitzero | (use_pc[1] != bitzero & not(extensionEnabled(Ext_Zca)))) then F_Error(E_Fetch_Addr_Align(), PC) else match translateAddr(use_pc, Execute()) { TR_Failure(e, _) => F_Error(e, PC), TR_Address(_, _) => { let i = rvfi_instruction[rvfi_insn]; - rvfi_inst_data->rvfi_insn() = zero_extend(i); + rvfi_inst_data[rvfi_insn] = zero_extend(i); if (i[1 .. 0] != 0b11) then F_RVC(i[15 .. 0]) else { /* fetch PC check for the next instruction granule */ - PC_hi : xlenbits = PC + 2; + let PC_hi = PC + 2; match ext_fetch_check_pc(PC, PC_hi) { Ext_FetchAddr_Error(e) => F_Ext_Error(e), Ext_FetchAddr_OK(use_pc_hi) => diff --git a/model/riscv_flen_D.sail b/model/riscv_flen_D.sail index 0edfa77..2f85ec5 100644 --- a/model/riscv_flen_D.sail +++ b/model/riscv_flen_D.sail @@ -9,5 +9,9 @@ /* Define the FLEN value for the 'D' extension. */ type flen : Int = 64 -type flen_bytes : Int = 8 type flenbits = bits(flen) + +// Variable versions of the above types. Variables and types +// are disjoint in Sail so they are allowed to have the same name. +// This saves typing `sizeof()` everywhere. +let flen = sizeof(flen) diff --git a/model/riscv_flen_F.sail b/model/riscv_flen_F.sail index c104936..fd329ee 100644 --- a/model/riscv_flen_F.sail +++ b/model/riscv_flen_F.sail @@ -9,5 +9,9 @@ /* Define the FLEN value for the 'F' extension. */ type flen : Int = 32 -type flen_bytes : Int = 4 type flenbits = bits(flen) + +// Variable versions of the above types. Variables and types +// are disjoint in Sail so they are allowed to have the same name. +// This saves typing `sizeof()` everywhere. +let flen = sizeof(flen) diff --git a/model/riscv_freg_type.sail b/model/riscv_freg_type.sail index a084c0f..503788d 100644 --- a/model/riscv_freg_type.sail +++ b/model/riscv_freg_type.sail @@ -12,7 +12,7 @@ type fregtype = flenbits /* default zero register */ -let zero_freg : fregtype = zero_extend(0x0) +let zero_freg : fregtype = zeros() /* default register printer */ val FRegStr : fregtype -> string diff --git a/model/riscv_insts_aext.sail b/model/riscv_insts_aext.sail index 18c047e..17863b8 100644 --- a/model/riscv_insts_aext.sail +++ b/model/riscv_insts_aext.sail @@ -38,7 +38,7 @@ function lrsc_width_str(width : word_width) -> string = function lrsc_width_valid(size : word_width) -> bool = { match size { WORD => true, - DOUBLE => sizeof(xlen) >= 64, + DOUBLE => xlen >= 64, _ => false } } @@ -48,7 +48,7 @@ function amo_width_valid(size : word_width) -> bool = { BYTE => extensionEnabled(Ext_Zabha), HALF => extensionEnabled(Ext_Zabha), WORD => true, - DOUBLE => sizeof(xlen) >= 64, + DOUBLE => xlen >= 64, } } @@ -75,7 +75,7 @@ function clause execute(LOADRES(aq, rl, rs1, width, rd)) = { let width_bytes = size_bytes(width); // This is checked during decoding. - assert(width_bytes <= sizeof(xlen_bytes)); + assert(width_bytes <= xlen_bytes); /* Get the address, X(rs1) (no offset). * Extensions might perform additional checks on address validity. @@ -114,7 +114,7 @@ function clause execute (STORECON(aq, rl, rs2, rs1, width, rd)) = { let width_bytes = size_bytes(width); // This is checked during decoding. - assert(width_bytes <= sizeof(xlen_bytes)); + assert(width_bytes <= xlen_bytes); if speculate_conditional () == false then { /* should only happen in rmem @@ -194,7 +194,7 @@ function clause execute (AMO(op, aq, rl, rs2, rs1, width, rd)) = { let 'width_bytes = size_bytes(width); // This is checked during decoding. - assert(width_bytes <= sizeof(xlen_bytes)); + assert(width_bytes <= xlen_bytes); /* Get the address, X(rs1) (no offset). * Some extensions perform additional checks on address validity. diff --git a/model/riscv_insts_base.sail b/model/riscv_insts_base.sail index 599c0a7..1510dd4 100644 --- a/model/riscv_insts_base.sail +++ b/model/riscv_insts_base.sail @@ -12,6 +12,9 @@ enum clause extension = Ext_C function clause extensionEnabled(Ext_C) = misa[C] == 0b1 +enum clause extension = Ext_Zca +function clause extensionEnabled(Ext_Zca) = extensionEnabled(Ext_C) + /* ****************************************************************** */ union clause ast = UTYPE : (bits(20), regidx, uop) @@ -69,7 +72,7 @@ function clause execute (RISCV_JAL(imm, rd)) = { }, Ext_ControlAddr_OK(target) => { /* Perform standard alignment check */ - if bit_to_bool(target[1]) & not(extensionEnabled(Ext_C)) + if bit_to_bool(target[1]) & not(extensionEnabled(Ext_Zca)) then { handle_mem_exception(target, E_Fetch_Addr_Align()); RETIRE_FAIL @@ -133,7 +136,7 @@ function clause execute (BTYPE(imm, rs2, rs1, op)) = { RETIRE_FAIL }, Ext_ControlAddr_OK(target) => { - if bit_to_bool(target[1]) & not(extensionEnabled(Ext_C)) then { + if bit_to_bool(target[1]) & not(extensionEnabled(Ext_Zca)) then { handle_mem_exception(target, E_Fetch_Addr_Align()); RETIRE_FAIL; } else { @@ -208,21 +211,21 @@ mapping encdec_sop : sop <-> bits(3) = { RISCV_SRAI <-> 0b101 } -mapping clause encdec = SHIFTIOP(shamt, rs1, rd, RISCV_SLLI) <-> 0b000000 @ shamt @ rs1 @ 0b001 @ rd @ 0b0010011 if sizeof(xlen) == 64 | shamt[5] == bitzero -mapping clause encdec = SHIFTIOP(shamt, rs1, rd, RISCV_SRLI) <-> 0b000000 @ shamt @ rs1 @ 0b101 @ rd @ 0b0010011 if sizeof(xlen) == 64 | shamt[5] == bitzero -mapping clause encdec = SHIFTIOP(shamt, rs1, rd, RISCV_SRAI) <-> 0b010000 @ shamt @ rs1 @ 0b101 @ rd @ 0b0010011 if sizeof(xlen) == 64 | shamt[5] == bitzero +mapping clause encdec = SHIFTIOP(shamt, rs1, rd, RISCV_SLLI) <-> 0b000000 @ shamt @ rs1 @ 0b001 @ rd @ 0b0010011 if xlen == 64 | shamt[5] == bitzero +mapping clause encdec = SHIFTIOP(shamt, rs1, rd, RISCV_SRLI) <-> 0b000000 @ shamt @ rs1 @ 0b101 @ rd @ 0b0010011 if xlen == 64 | shamt[5] == bitzero +mapping clause encdec = SHIFTIOP(shamt, rs1, rd, RISCV_SRAI) <-> 0b010000 @ shamt @ rs1 @ 0b101 @ rd @ 0b0010011 if xlen == 64 | shamt[5] == bitzero function clause execute (SHIFTIOP(shamt, rs1, rd, op)) = { let rs1_val = X(rs1); /* the decoder guard should ensure that shamt[5] = 0 for RV32 */ let result : xlenbits = match op { - RISCV_SLLI => if sizeof(xlen) == 32 + RISCV_SLLI => if xlen == 32 then rs1_val << shamt[4..0] else rs1_val << shamt, - RISCV_SRLI => if sizeof(xlen) == 32 + RISCV_SRLI => if xlen == 32 then rs1_val >> shamt[4..0] else rs1_val >> shamt, - RISCV_SRAI => if sizeof(xlen) == 32 + RISCV_SRAI => if xlen == 32 then shift_right_arith32(rs1_val, shamt[4..0]) else shift_right_arith64(rs1_val, shamt) }; @@ -263,14 +266,14 @@ function clause execute (RTYPE(rs2, rs1, rd, op)) = { RISCV_AND => rs1_val & rs2_val, RISCV_OR => rs1_val | rs2_val, RISCV_XOR => rs1_val ^ rs2_val, - RISCV_SLL => if sizeof(xlen) == 32 + RISCV_SLL => if xlen == 32 then rs1_val << (rs2_val[4..0]) else rs1_val << (rs2_val[5..0]), - RISCV_SRL => if sizeof(xlen) == 32 + RISCV_SRL => if xlen == 32 then rs1_val >> (rs2_val[4..0]) else rs1_val >> (rs2_val[5..0]), RISCV_SUB => rs1_val - rs2_val, - RISCV_SRA => if sizeof(xlen) == 32 + RISCV_SRA => if xlen == 32 then shift_right_arith32(rs1_val, rs2_val[4..0]) else shift_right_arith64(rs1_val, rs2_val[5..0]) }; @@ -299,8 +302,8 @@ union clause ast = LOAD : (bits(12), regidx, regidx, bool, word_width, bool, boo /* unsigned loads are only present for widths strictly less than xlen, signed loads also present for widths equal to xlen */ -mapping clause encdec = LOAD(imm, rs1, rd, is_unsigned, size, false, false) if (size_bytes(size) < sizeof(xlen_bytes)) | (not(is_unsigned) & size_bytes(size) <= sizeof(xlen_bytes)) - <-> imm @ rs1 @ bool_bits(is_unsigned) @ size_enc(size) @ rd @ 0b0000011 if (size_bytes(size) < sizeof(xlen_bytes)) | (not(is_unsigned) & size_bytes(size) <= sizeof(xlen_bytes)) +mapping clause encdec = LOAD(imm, rs1, rd, is_unsigned, size, false, false) if (size_bytes(size) < xlen_bytes) | (not(is_unsigned) & size_bytes(size) <= xlen_bytes) + <-> imm @ rs1 @ bool_bits(is_unsigned) @ size_enc(size) @ rd @ 0b0000011 if (size_bytes(size) < xlen_bytes) | (not(is_unsigned) & size_bytes(size) <= xlen_bytes) val extend_value : forall 'n, 0 < 'n <= xlen. (bool, bits('n)) -> xlenbits function extend_value(is_unsigned, value) = if is_unsigned then zero_extend(value) else sign_extend(value) @@ -322,7 +325,7 @@ function clause execute(LOAD(imm, rs1, rd, is_unsigned, width, aq, rl)) = { let width_bytes = size_bytes(width); // This is checked during decoding. - assert(width_bytes <= sizeof(xlen_bytes)); + assert(width_bytes <= xlen_bytes); /* Get the address, X(rs1) + offset. Some extensions perform additional checks on address validity. */ @@ -368,8 +371,8 @@ mapping clause assembly = LOAD(imm, rs1, rd, is_unsigned, size, aq, rl) /* ****************************************************************** */ union clause ast = STORE : (bits(12), regidx, regidx, word_width, bool, bool) -mapping clause encdec = STORE(imm7 @ imm5, rs2, rs1, size, false, false) if size_bytes(size) <= sizeof(xlen_bytes) - <-> imm7 : bits(7) @ rs2 @ rs1 @ 0b0 @ size_enc(size) @ imm5 : bits(5) @ 0b0100011 if size_bytes(size) <= sizeof(xlen_bytes) +mapping clause encdec = STORE(imm7 @ imm5, rs2, rs1, size, false, false) if size_bytes(size) <= xlen_bytes + <-> imm7 : bits(7) @ rs2 @ rs1 @ 0b0 @ size_enc(size) @ imm5 : bits(5) @ 0b0100011 if size_bytes(size) <= xlen_bytes /* NOTE: Currently, we only EA if address translation is successful. This may need revisiting. */ @@ -378,7 +381,7 @@ function clause execute (STORE(imm, rs2, rs1, width, aq, rl)) = { let width_bytes = size_bytes(width); // This is checked during decoding. - assert(width_bytes <= sizeof(xlen_bytes)); + assert(width_bytes <= xlen_bytes); /* Get the address, X(rs1) + offset. Some extensions perform additional checks on address validity. */ @@ -414,9 +417,9 @@ mapping clause assembly = STORE(imm, rs2, rs1, size, aq, rl) union clause ast = ADDIW : (bits(12), regidx, regidx) mapping clause encdec = ADDIW(imm, rs1, rd) - if sizeof(xlen) == 64 + if xlen == 64 <-> imm @ rs1 @ 0b000 @ rd @ 0b0011011 - if sizeof(xlen) == 64 + if xlen == 64 function clause execute (ADDIW(imm, rs1, rd)) = { let result : xlenbits = sign_extend(imm) + X(rs1); @@ -425,33 +428,33 @@ function clause execute (ADDIW(imm, rs1, rd)) = { } mapping clause assembly = ADDIW(imm, rs1, rd) - if sizeof(xlen) == 64 + if xlen == 64 <-> "addiw" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ hex_bits_signed_12(imm) - if sizeof(xlen) == 64 + if xlen == 64 /* ****************************************************************** */ union clause ast = RTYPEW : (regidx, regidx, regidx, ropw) mapping clause encdec = RTYPEW(rs2, rs1, rd, RISCV_ADDW) - if sizeof(xlen) == 64 + if xlen == 64 <-> 0b0000000 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0111011 - if sizeof(xlen) == 64 + if xlen == 64 mapping clause encdec = RTYPEW(rs2, rs1, rd, RISCV_SUBW) - if sizeof(xlen) == 64 + if xlen == 64 <-> 0b0100000 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0111011 - if sizeof(xlen) == 64 + if xlen == 64 mapping clause encdec = RTYPEW(rs2, rs1, rd, RISCV_SLLW) - if sizeof(xlen) == 64 + if xlen == 64 <-> 0b0000000 @ rs2 @ rs1 @ 0b001 @ rd @ 0b0111011 - if sizeof(xlen) == 64 + if xlen == 64 mapping clause encdec = RTYPEW(rs2, rs1, rd, RISCV_SRLW) - if sizeof(xlen) == 64 + if xlen == 64 <-> 0b0000000 @ rs2 @ rs1 @ 0b101 @ rd @ 0b0111011 - if sizeof(xlen) == 64 + if xlen == 64 mapping clause encdec = RTYPEW(rs2, rs1, rd, RISCV_SRAW) - if sizeof(xlen) == 64 + if xlen == 64 <-> 0b0100000 @ rs2 @ rs1 @ 0b101 @ rd @ 0b0111011 - if sizeof(xlen) == 64 + if xlen == 64 function clause execute (RTYPEW(rs2, rs1, rd, op)) = { let rs1_val = (X(rs1))[31..0]; @@ -476,25 +479,25 @@ mapping rtypew_mnemonic : ropw <-> string = { } mapping clause assembly = RTYPEW(rs2, rs1, rd, op) - if sizeof(xlen) == 64 + if xlen == 64 <-> rtypew_mnemonic(op) ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ reg_name(rs2) - if sizeof(xlen) == 64 + if xlen == 64 /* ****************************************************************** */ union clause ast = SHIFTIWOP : (bits(5), regidx, regidx, sopw) mapping clause encdec = SHIFTIWOP(shamt, rs1, rd, RISCV_SLLIW) - if sizeof(xlen) == 64 + if xlen == 64 <-> 0b0000000 @ shamt @ rs1 @ 0b001 @ rd @ 0b0011011 - if sizeof(xlen) == 64 + if xlen == 64 mapping clause encdec = SHIFTIWOP(shamt, rs1, rd, RISCV_SRLIW) - if sizeof(xlen) == 64 + if xlen == 64 <-> 0b0000000 @ shamt @ rs1 @ 0b101 @ rd @ 0b0011011 - if sizeof(xlen) == 64 + if xlen == 64 mapping clause encdec = SHIFTIWOP(shamt, rs1, rd, RISCV_SRAIW) - if sizeof(xlen) == 64 + if xlen == 64 <-> 0b0100000 @ shamt @ rs1 @ 0b101 @ rd @ 0b0011011 - if sizeof(xlen) == 64 + if xlen == 64 function clause execute (SHIFTIWOP(shamt, rs1, rd, op)) = { let rs1_val = (X(rs1))[31..0]; @@ -514,9 +517,9 @@ mapping shiftiwop_mnemonic : sopw <-> string = { } mapping clause assembly = SHIFTIWOP(shamt, rs1, rd, op) - if sizeof(xlen) == 64 + if xlen == 64 <-> shiftiwop_mnemonic(op) ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ hex_bits_5(shamt) - if sizeof(xlen) == 64 + if xlen == 64 /* ****************************************************************** */ union clause ast = FENCE : (bits(4), bits(4)) @@ -605,17 +608,6 @@ mapping clause assembly = FENCE_TSO(pred, succ) <-> "fence.tso" ^ spc() ^ fence_bits(pred) ^ sep() ^ fence_bits(succ) /* ****************************************************************** */ -union clause ast = FENCEI : unit - -mapping clause encdec = FENCEI() - <-> 0b000000000000 @ 0b00000 @ 0b001 @ 0b00000 @ 0b0001111 - -/* fence.i is a nop for the memory model */ -function clause execute FENCEI() = { /* __barrier(Barrier_RISCV_i); */ RETIRE_SUCCESS } - -mapping clause assembly = FENCEI() <-> "fence.i" - -/* ****************************************************************** */ union clause ast = ECALL : unit mapping clause encdec = ECALL() diff --git a/model/riscv_insts_dext.sail b/model/riscv_insts_dext.sail index f366c48..c89e9f3 100644 --- a/model/riscv_insts_dext.sail +++ b/model/riscv_insts_dext.sail @@ -225,15 +225,15 @@ function fle_D (v1, v2, is_quiet) = { /* Helper functions for 'encdec()' */ enum clause extension = Ext_Zdinx -function clause extensionEnabled(Ext_Zdinx) = sys_enable_zfinx() & sizeof(flen) >= 64 +function clause extensionEnabled(Ext_Zdinx) = sys_enable_zfinx() & flen >= 64 function haveDoubleFPU() -> bool = extensionEnabled(Ext_D) | extensionEnabled(Ext_Zdinx) /* RV32Zdinx requires even register pairs; can be omitted for code */ /* not used for RV32Zdinx (i.e. RV64-only or D-only). */ -val validDoubleRegs : forall 'n, 'n > 0. (implicit('n), vector('n, dec, regidx)) -> bool +val validDoubleRegs : forall 'n, 'n > 0. (implicit('n), vector('n, regidx)) -> bool function validDoubleRegs(n, regs) = { - if extensionEnabled(Ext_Zdinx) & sizeof(xlen) == 32 then + if extensionEnabled(Ext_Zdinx) & xlen == 32 then foreach (i from 0 to (n - 1)) if (regs[i][0] == bitone) then return false; true @@ -417,20 +417,20 @@ mapping clause encdec = /* D instructions, RV64 only */ mapping clause encdec = - F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_L_D) if haveDoubleFPU() & sizeof(xlen) >= 64 -<-> 0b110_0001 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveDoubleFPU() & sizeof(xlen) >= 64 + F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_L_D) if haveDoubleFPU() & xlen >= 64 +<-> 0b110_0001 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveDoubleFPU() & xlen >= 64 mapping clause encdec = - F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_LU_D) if haveDoubleFPU() & sizeof(xlen) >= 64 -<-> 0b110_0001 @ 0b00011 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveDoubleFPU() & sizeof(xlen) >= 64 + F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_LU_D) if haveDoubleFPU() & xlen >= 64 +<-> 0b110_0001 @ 0b00011 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveDoubleFPU() & xlen >= 64 mapping clause encdec = - F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_D_L) if haveDoubleFPU() & sizeof(xlen) >= 64 -<-> 0b110_1001 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveDoubleFPU() & sizeof(xlen) >= 64 + F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_D_L) if haveDoubleFPU() & xlen >= 64 +<-> 0b110_1001 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveDoubleFPU() & xlen >= 64 mapping clause encdec = - F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_D_LU) if haveDoubleFPU() & sizeof(xlen) >= 64 -<-> 0b110_1001 @ 0b00011 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveDoubleFPU() & sizeof(xlen) >= 64 + F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_D_LU) if haveDoubleFPU() & xlen >= 64 +<-> 0b110_1001 @ 0b00011 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveDoubleFPU() & xlen >= 64 /* Execution semantics ================================ */ @@ -540,7 +540,7 @@ function clause execute (F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_D_S)) = { } function clause execute (F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_L_D)) = { - assert(sizeof(xlen) >= 64); + assert(xlen >= 64); let rs1_val_D = F_or_X_D(rs1); match (select_instr_or_fcsr_rm (rm)) { None() => { handle_illegal(); RETIRE_FAIL }, @@ -556,7 +556,7 @@ function clause execute (F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_L_D)) = { } function clause execute (F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_LU_D)) = { - assert(sizeof(xlen) >= 64); + assert(xlen >= 64); let rs1_val_D = F_or_X_D(rs1); match (select_instr_or_fcsr_rm (rm)) { None() => { handle_illegal(); RETIRE_FAIL }, @@ -572,7 +572,7 @@ function clause execute (F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_LU_D)) = { } function clause execute (F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_D_L)) = { - assert(sizeof(xlen) >= 64); + assert(xlen >= 64); let rs1_val_L = X(rs1)[63..0]; match (select_instr_or_fcsr_rm (rm)) { None() => { handle_illegal(); RETIRE_FAIL }, @@ -588,7 +588,7 @@ function clause execute (F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_D_L)) = { } function clause execute (F_UN_RM_TYPE_D(rs1, rm, rd, FCVT_D_LU)) = { - assert(sizeof(xlen) >= 64); + assert(xlen >= 64); let rs1_val_LU = X(rs1)[63..0]; match (select_instr_or_fcsr_rm (rm)) { None() => { handle_illegal(); RETIRE_FAIL }, @@ -905,11 +905,11 @@ mapping clause encdec = F_UN_TYPE_D(rs1, rd, FCLASS_D) if /* D instructions, RV64 only */ -mapping clause encdec = F_UN_TYPE_D(rs1, rd, FMV_X_D) if extensionEnabled(Ext_D) & sizeof(xlen) >= 64 - <-> 0b111_0001 @ 0b00000 @ rs1 @ 0b000 @ rd @ 0b101_0011 if extensionEnabled(Ext_D) & sizeof(xlen) >= 64 +mapping clause encdec = F_UN_TYPE_D(rs1, rd, FMV_X_D) if extensionEnabled(Ext_D) & xlen >= 64 + <-> 0b111_0001 @ 0b00000 @ rs1 @ 0b000 @ rd @ 0b101_0011 if extensionEnabled(Ext_D) & xlen >= 64 -mapping clause encdec = F_UN_TYPE_D(rs1, rd, FMV_D_X) if extensionEnabled(Ext_D) & sizeof(xlen) >= 64 - <-> 0b111_1001 @ 0b00000 @ rs1 @ 0b000 @ rd @ 0b101_0011 if extensionEnabled(Ext_D) & sizeof(xlen) >= 64 +mapping clause encdec = F_UN_TYPE_D(rs1, rd, FMV_D_X) if extensionEnabled(Ext_D) & xlen >= 64 + <-> 0b111_1001 @ 0b00000 @ rs1 @ 0b000 @ rd @ 0b101_0011 if extensionEnabled(Ext_D) & xlen >= 64 /* Execution semantics ================================ */ @@ -934,7 +934,7 @@ function clause execute (F_UN_TYPE_D(rs1, rd, FCLASS_D)) = { } function clause execute (F_UN_TYPE_D(rs1, rd, FMV_X_D)) = { - assert(sizeof(xlen) >= 64); + assert(xlen >= 64); let rs1_val_D = F(rs1)[63..0]; let rd_val_X : xlenbits = sign_extend(rs1_val_D); X(rd) = rd_val_X; @@ -942,7 +942,7 @@ function clause execute (F_UN_TYPE_D(rs1, rd, FMV_X_D)) = { } function clause execute (F_UN_TYPE_D(rs1, rd, FMV_D_X)) = { - assert(sizeof(xlen) >= 64); + assert(xlen >= 64); let rs1_val_X = X(rs1); let rd_val_D = rs1_val_X [63..0]; F(rd) = rd_val_D; diff --git a/model/riscv_insts_fext.sail b/model/riscv_insts_fext.sail index 3a5509e..e42fed4 100644 --- a/model/riscv_insts_fext.sail +++ b/model/riscv_insts_fext.sail @@ -25,9 +25,14 @@ /* **************************************************************** */ +// TODO: Add config flags to control Zfh and Zfhmin enum clause extension = Ext_Zfh function clause extensionEnabled(Ext_Zfh) = (misa[F] == 0b1) & (mstatus[FS] != 0b00) +enum clause extension = Ext_Zfhmin +// Zfhmin is a subset of Zfh. This can be changed to extensionEnabled(Ext_Zfh) | sys_enable_zfhmin() when more configuration is implemented. +function clause extensionEnabled(Ext_Zfhmin) = extensionEnabled(Ext_Zfh) + mapping encdec_rounding_mode : rounding_mode <-> bits(3) = { RM_RNE <-> 0b000, RM_RTZ <-> 0b001, @@ -274,8 +279,8 @@ union clause ast = LOAD_FP : (bits(12), regidx, regidx, word_width) /* AST <-> Binary encoding ================================ */ -mapping clause encdec = LOAD_FP(imm, rs1, rd, HALF) if extensionEnabled(Ext_Zfh) - <-> imm @ rs1 @ 0b001 @ rd @ 0b000_0111 if extensionEnabled(Ext_Zfh) +mapping clause encdec = LOAD_FP(imm, rs1, rd, HALF) if extensionEnabled(Ext_Zfhmin) + <-> imm @ rs1 @ 0b001 @ rd @ 0b000_0111 if extensionEnabled(Ext_Zfhmin) mapping clause encdec = LOAD_FP(imm, rs1, rd, WORD) if extensionEnabled(Ext_F) <-> imm @ rs1 @ 0b010 @ rd @ 0b000_0111 if extensionEnabled(Ext_F) @@ -288,7 +293,7 @@ mapping clause encdec = LOAD_FP(imm, rs1, rd, DOUBLE) if extensionEnabled val process_fload64 : (regidx, xlenbits, MemoryOpResult(bits(64))) -> Retired function process_fload64(rd, addr, value) = - if sizeof(flen) == 64 + if flen == 64 then match value { MemValue(result) => { F(rd) = result; RETIRE_SUCCESS }, MemException(e) => { handle_mem_exception(addr, e); RETIRE_FAIL } @@ -333,7 +338,7 @@ function clause execute(LOAD_FP(imm, rs1, rd, width)) = { process_fload16(rd, vaddr, mem_read(Read(Data), addr, 2, aq, rl, res)), WORD => process_fload32(rd, vaddr, mem_read(Read(Data), addr, 4, aq, rl, res)), - DOUBLE if sizeof(flen) >= 64 => + DOUBLE if flen >= 64 => process_fload64(rd, vaddr, mem_read(Read(Data), addr, 8, aq, rl, res)), _ => report_invalid_width(__FILE__, __LINE__, width, "floating point load"), } @@ -360,8 +365,8 @@ union clause ast = STORE_FP : (bits(12), regidx, regidx, word_width) /* AST <-> Binary encoding ================================ */ -mapping clause encdec = STORE_FP(imm7 @ imm5, rs2, rs1, HALF) if extensionEnabled(Ext_Zfh) - <-> imm7 : bits(7) @ rs2 @ rs1 @ 0b001 @ imm5 : bits(5) @ 0b010_0111 if extensionEnabled(Ext_Zfh) +mapping clause encdec = STORE_FP(imm7 @ imm5, rs2, rs1, HALF) if extensionEnabled(Ext_Zfhmin) + <-> imm7 : bits(7) @ rs2 @ rs1 @ 0b001 @ imm5 : bits(5) @ 0b010_0111 if extensionEnabled(Ext_Zfhmin) mapping clause encdec = STORE_FP(imm7 @ imm5, rs2, rs1, WORD) if extensionEnabled(Ext_F) <-> imm7 : bits(7) @ rs2 @ rs1 @ 0b010 @ imm5 : bits(5) @ 0b010_0111 if extensionEnabled(Ext_F) @@ -406,7 +411,7 @@ function clause execute (STORE_FP(imm, rs2, rs1, width)) = { BYTE => { handle_illegal(); RETIRE_FAIL }, HALF => process_fstore (vaddr, mem_write_value(addr, 2, rs2_val[15..0], aq, rl, con)), WORD => process_fstore (vaddr, mem_write_value(addr, 4, rs2_val[31..0], aq, rl, con)), - DOUBLE if sizeof(flen) >= 64 => + DOUBLE if flen >= 64 => process_fstore (vaddr, mem_write_value(addr, 8, rs2_val, aq, rl, con)), _ => report_invalid_width(__FILE__, __LINE__, width, "floating point store"), }; @@ -586,20 +591,20 @@ mapping clause encdec = /* F instructions, RV64 only */ mapping clause encdec = - F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_L_S) if haveSingleFPU() & sizeof(xlen) >= 64 -<-> 0b110_0000 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveSingleFPU() & sizeof(xlen) >= 64 + F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_L_S) if haveSingleFPU() & xlen >= 64 +<-> 0b110_0000 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveSingleFPU() & xlen >= 64 mapping clause encdec = - F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_LU_S) if haveSingleFPU() & sizeof(xlen) >= 64 -<-> 0b110_0000 @ 0b00011 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveSingleFPU() & sizeof(xlen) >= 64 + F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_LU_S) if haveSingleFPU() & xlen >= 64 +<-> 0b110_0000 @ 0b00011 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveSingleFPU() & xlen >= 64 mapping clause encdec = - F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_S_L) if haveSingleFPU() & sizeof(xlen) >= 64 -<-> 0b110_1000 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveSingleFPU() & sizeof(xlen) >= 64 + F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_S_L) if haveSingleFPU() & xlen >= 64 +<-> 0b110_1000 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveSingleFPU() & xlen >= 64 mapping clause encdec = - F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_S_LU) if haveSingleFPU() & sizeof(xlen) >= 64 -<-> 0b110_1000 @ 0b00011 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveSingleFPU() & sizeof(xlen) >= 64 + F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_S_LU) if haveSingleFPU() & xlen >= 64 +<-> 0b110_1000 @ 0b00011 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveSingleFPU() & xlen >= 64 /* Execution semantics ================================ */ @@ -679,7 +684,7 @@ function clause execute (F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_S_WU)) = { } function clause execute (F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_L_S)) = { - assert(sizeof(xlen) >= 64); + assert(xlen >= 64); let rs1_val_S = F_or_X_S(rs1); match (select_instr_or_fcsr_rm (rm)) { None() => { handle_illegal(); RETIRE_FAIL }, @@ -695,7 +700,7 @@ function clause execute (F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_L_S)) = { } function clause execute (F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_LU_S)) = { - assert(sizeof(xlen) >= 64); + assert(xlen >= 64); let rs1_val_S = F_or_X_S(rs1); match (select_instr_or_fcsr_rm (rm)) { None() => { handle_illegal(); RETIRE_FAIL }, @@ -711,7 +716,7 @@ function clause execute (F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_LU_S)) = { } function clause execute (F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_S_L)) = { - assert(sizeof(xlen) >= 64); + assert(xlen >= 64); let rs1_val_L = X(rs1)[63..0]; match (select_instr_or_fcsr_rm (rm)) { None() => { handle_illegal(); RETIRE_FAIL }, @@ -727,7 +732,7 @@ function clause execute (F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_S_L)) = { } function clause execute (F_UN_RM_TYPE_S(rs1, rm, rd, FCVT_S_LU)) = { - assert(sizeof(xlen) >= 64); + assert(xlen >= 64); let rs1_val_LU = X(rs1)[63..0]; match (select_instr_or_fcsr_rm (rm)) { None() => { handle_illegal(); RETIRE_FAIL }, diff --git a/model/riscv_insts_hints.sail b/model/riscv_insts_hints.sail index ceddcf2..ff89493 100644 --- a/model/riscv_insts_hints.sail +++ b/model/riscv_insts_hints.sail @@ -97,9 +97,9 @@ mapping clause assembly = C_ADD_HINT(rs2) union clause ast = C_SLLI_HINT : (bits(6), regidx) mapping clause encdec_compressed = C_SLLI_HINT(nzui5 @ nzui40, rsd) - if (nzui5 @ nzui40 == 0b000000 | rsd == zreg) & (sizeof(xlen) == 64 | nzui5 == 0b0) + if (nzui5 @ nzui40 == 0b000000 | rsd == zreg) & (xlen == 64 | nzui5 == 0b0) <-> 0b000 @ nzui5 : bits(1) @ rsd : regidx @ nzui40 : bits(5) @ 0b10 - if (nzui5 @ nzui40 == 0b000000 | rsd == zreg) & (sizeof(xlen) == 64 | nzui5 == 0b0) + if (nzui5 @ nzui40 == 0b000000 | rsd == zreg) & (xlen == 64 | nzui5 == 0b0) function clause execute (C_SLLI_HINT(shamt, rsd)) = RETIRE_SUCCESS diff --git a/model/riscv_insts_mext.sail b/model/riscv_insts_mext.sail index b153e79..069ad20 100644 --- a/model/riscv_insts_mext.sail +++ b/model/riscv_insts_mext.sail @@ -34,10 +34,10 @@ function clause execute (MUL(rs2, rs1, rd, mul_op)) = { let rs2_val = X(rs2); let rs1_int : int = if mul_op.signed_rs1 then signed(rs1_val) else unsigned(rs1_val); let rs2_int : int = if mul_op.signed_rs2 then signed(rs2_val) else unsigned(rs2_val); - let result_wide = to_bits(2 * sizeof(xlen), rs1_int * rs2_int); + let result_wide = to_bits(2 * xlen, rs1_int * rs2_int); let result = if mul_op.high - then result_wide[(2 * sizeof(xlen) - 1) .. sizeof(xlen)] - else result_wide[(sizeof(xlen) - 1) .. 0]; + then result_wide[(2 * xlen - 1) .. xlen] + else result_wide[(xlen - 1) .. 0]; X(rd) = result; RETIRE_SUCCESS } @@ -66,7 +66,7 @@ function clause execute (DIV(rs2, rs1, rd, s)) = { let q : int = if rs2_int == 0 then -1 else quot_round_zero(rs1_int, rs2_int); /* check for signed overflow */ let q': int = if s & q > xlen_max_signed then xlen_min_signed else q; - X(rd) = to_bits(sizeof(xlen), q'); + X(rd) = to_bits(xlen, q'); RETIRE_SUCCESS } @@ -91,7 +91,7 @@ function clause execute (REM(rs2, rs1, rd, s)) = { let rs2_int : int = if s then signed(rs2_val) else unsigned(rs2_val); let r : int = if rs2_int == 0 then rs1_int else rem_round_zero(rs1_int, rs2_int); /* signed overflow case returns zero naturally as required due to -1 divisor */ - X(rd) = to_bits(sizeof(xlen), r); + X(rd) = to_bits(xlen, r); RETIRE_SUCCESS } @@ -102,9 +102,9 @@ mapping clause assembly = REM(rs2, rs1, rd, s) union clause ast = MULW : (regidx, regidx, regidx) mapping clause encdec = MULW(rs2, rs1, rd) - if sizeof(xlen) == 64 & (extensionEnabled(Ext_M) | extensionEnabled(Ext_Zmmul)) + if xlen == 64 & (extensionEnabled(Ext_M) | extensionEnabled(Ext_Zmmul)) <-> 0b0000001 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0111011 - if sizeof(xlen) == 64 & (extensionEnabled(Ext_M) | extensionEnabled(Ext_Zmmul)) + if xlen == 64 & (extensionEnabled(Ext_M) | extensionEnabled(Ext_Zmmul)) function clause execute (MULW(rs2, rs1, rd)) = { let rs1_val = X(rs1)[31..0]; @@ -119,17 +119,17 @@ function clause execute (MULW(rs2, rs1, rd)) = { } mapping clause assembly = MULW(rs2, rs1, rd) - if sizeof(xlen) == 64 + if xlen == 64 <-> "mulw" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ reg_name(rs2) - if sizeof(xlen) == 64 + if xlen == 64 /* ****************************************************************** */ union clause ast = DIVW : (regidx, regidx, regidx, bool) mapping clause encdec = DIVW(rs2, rs1, rd, s) - if sizeof(xlen) == 64 & extensionEnabled(Ext_M) + if xlen == 64 & extensionEnabled(Ext_M) <-> 0b0000001 @ rs2 @ rs1 @ 0b10 @ bool_not_bits(s) @ rd @ 0b0111011 - if sizeof(xlen) == 64 & extensionEnabled(Ext_M) + if xlen == 64 & extensionEnabled(Ext_M) function clause execute (DIVW(rs2, rs1, rd, s)) = { let rs1_val = X(rs1)[31..0]; @@ -138,23 +138,23 @@ function clause execute (DIVW(rs2, rs1, rd, s)) = { let rs2_int : int = if s then signed(rs2_val) else unsigned(rs2_val); let q : int = if rs2_int == 0 then -1 else quot_round_zero(rs1_int, rs2_int); /* check for signed overflow */ - let q': int = if s & q > (2 ^ 31 - 1) then (0 - 2^31) else q; + let q': int = if s & q > (2 ^ 31 - 1) then (0 - (2 ^ 31)) else q; X(rd) = sign_extend(to_bits(32, q')); RETIRE_SUCCESS } mapping clause assembly = DIVW(rs2, rs1, rd, s) - if sizeof(xlen) == 64 + if xlen == 64 <-> "div" ^ maybe_not_u(s) ^ "w" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ reg_name(rs2) - if sizeof(xlen) == 64 + if xlen == 64 /* ****************************************************************** */ union clause ast = REMW : (regidx, regidx, regidx, bool) mapping clause encdec = REMW(rs2, rs1, rd, s) - if sizeof(xlen) == 64 & extensionEnabled(Ext_M) + if xlen == 64 & extensionEnabled(Ext_M) <-> 0b0000001 @ rs2 @ rs1 @ 0b11 @ bool_not_bits(s) @ rd @ 0b0111011 - if sizeof(xlen) == 64 & extensionEnabled(Ext_M) + if xlen == 64 & extensionEnabled(Ext_M) function clause execute (REMW(rs2, rs1, rd, s)) = { let rs1_val = X(rs1)[31..0]; @@ -168,6 +168,6 @@ function clause execute (REMW(rs2, rs1, rd, s)) = { } mapping clause assembly = REMW(rs2, rs1, rd, s) - if sizeof(xlen) == 64 + if xlen == 64 <-> "rem" ^ maybe_not_u(s) ^ "w" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ reg_name(rs2) - if sizeof(xlen) == 64 + if xlen == 64 diff --git a/model/riscv_insts_vext_arith.sail b/model/riscv_insts_vext_arith.sail index b351b01..78d4e3a 100644 --- a/model/riscv_insts_vext_arith.sail +++ b/model/riscv_insts_vext_arith.sail @@ -55,14 +55,13 @@ function clause execute(VVTYPE(funct6, vm, vs2, vs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -116,16 +115,16 @@ function clause execute(VVTYPE(funct6, vm, vs2, vs1, vd)) = { VV_VRGATHER => { if (vs1 == vd | vs2 == vd) then { handle_illegal(); return RETIRE_FAIL }; let idx = unsigned(vs1_val[i]); - let VLMAX = int_power(2, LMUL_pow + VLEN_pow - SEW_pow); + let VLMAX = 2 ^ (LMUL_pow + VLEN_pow - SEW_pow); assert(VLMAX <= 'n); if idx < VLMAX then vs2_val[idx] else zeros() }, VV_VRGATHEREI16 => { if (vs1 == vd | vs2 == vd) then { handle_illegal(); return RETIRE_FAIL }; /* vrgatherei16.vv uses SEW/LMUL for the data in vs2 but EEW=16 and EMUL = (16/SEW)*LMUL for the indices in vs1 */ - let vs1_new : vector('n, dec, bits(16)) = read_vreg(num_elem, 16, 4 + LMUL_pow - SEW_pow, vs1); + let vs1_new : vector('n, bits(16)) = read_vreg(num_elem, 16, 4 + LMUL_pow - SEW_pow, vs1); let idx = unsigned(vs1_new[i]); - let VLMAX = int_power(2, LMUL_pow + VLEN_pow - SEW_pow); + let VLMAX = 2 ^ (LMUL_pow + VLEN_pow - SEW_pow); assert(VLMAX <= 'n); if idx < VLMAX then vs2_val[idx] else zeros() } @@ -192,14 +191,13 @@ function clause execute(NVSTYPE(funct6, vm, vs2, vs1, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; assert(SEW_widen <= 64); foreach (i from 0 to (num_elem - 1)) { @@ -259,14 +257,13 @@ function clause execute(NVTYPE(funct6, vm, vs2, vs1, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; assert(SEW_widen <= 64); foreach (i from 0 to (num_elem - 1)) { @@ -319,11 +316,11 @@ function clause execute(MASKTYPEV(vs2, vs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, 0b00000); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, 0b0, 0b00000); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); + var result : vector('n, bits('m)) = vector_init(zeros()); let tail_ag : agtype = get_vtype_vta(); foreach (i from 0 to (num_elem - 1)) { @@ -364,13 +361,12 @@ function clause execute(MOVETYPEV(vs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, 0b1, 0b00000); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, 0b1, 0b00000); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then result[i] = vs1_val[i] @@ -423,14 +419,13 @@ function clause execute(VXTYPE(funct6, vm, vs2, rs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); let rs1_val : bits('m) = get_scalar(rs1, SEW); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -544,14 +539,13 @@ function clause execute(NXSTYPE(funct6, vm, vs2, rs1, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); let rs1_val : bits('m) = get_scalar(rs1, SEW); - let vs2_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; assert(SEW_widen <= 64); foreach (i from 0 to (num_elem - 1)) { @@ -611,14 +605,13 @@ function clause execute(NXTYPE(funct6, vm, vs2, rs1, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); let rs1_val : bits('m) = get_scalar(rs1, SEW); - let vs2_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; assert(SEW_widen <= 64); foreach (i from 0 to (num_elem - 1)) { @@ -677,14 +670,13 @@ function clause execute(VXSG(funct6, vm, vs2, rs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); let rs1_val : nat = unsigned(X(rs1)); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -694,13 +686,13 @@ function clause execute(VXSG(funct6, vm, vs2, rs1, vd)) = { if i >= rs1_val then vs2_val[i - rs1_val] else vd_val[i] }, VX_VSLIDEDOWN => { - let VLMAX = int_power(2, LMUL_pow + VLEN_pow - SEW_pow); + let VLMAX = 2 ^ (LMUL_pow + VLEN_pow - SEW_pow); assert(VLMAX > 0 & VLMAX <= 'n); if i + rs1_val < VLMAX then vs2_val[i + rs1_val] else zeros() }, VX_VRGATHER => { if (vs2 == vd) then { handle_illegal(); return RETIRE_FAIL }; - let VLMAX = int_power(2, LMUL_pow + VLEN_pow - SEW_pow); + let VLMAX = 2 ^ (LMUL_pow + VLEN_pow - SEW_pow); assert(VLMAX > 0 & VLMAX <= 'n); if rs1_val < VLMAX then vs2_val[rs1_val] else zeros() } @@ -741,11 +733,11 @@ function clause execute(MASKTYPEX(vs2, rs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, 0b00000); + let vm_val : vector('n, bool) = read_vmask(num_elem, 0b0, 0b00000); let rs1_val : bits('m) = get_scalar(rs1, SEW); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); + var result : vector('n, bits('m)) = vector_init(zeros()); let tail_ag : agtype = get_vtype_vta(); foreach (i from 0 to (num_elem - 1)) { @@ -787,12 +779,11 @@ function clause execute(MOVETYPEX(rs1, vd)) = { let 'm = SEW; let rs1_val : bits('m) = get_scalar(rs1, 'm); - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, 0b1, 0b00000); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, 0b1, 0b00000); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then result[i] = rs1_val @@ -837,14 +828,13 @@ function clause execute(VITYPE(funct6, vm, vs2, simm, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); let imm_val : bits('m) = sign_extend(simm); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -934,14 +924,13 @@ function clause execute(NISTYPE(funct6, vm, vs2, simm, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); let imm_val : bits('m) = sign_extend(simm); - let vs2_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; assert(SEW_widen <= 64); foreach (i from 0 to (num_elem - 1)) { @@ -1001,14 +990,13 @@ function clause execute(NITYPE(funct6, vm, vs2, simm, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); let imm_val : bits('m) = sign_extend(simm); - let vs2_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; assert(SEW_widen <= 64); foreach (i from 0 to (num_elem - 1)) { @@ -1067,14 +1055,13 @@ function clause execute(VISG(funct6, vm, vs2, simm, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let imm_val : nat = unsigned(zero_extend(sizeof(xlen), simm)); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let imm_val : nat = unsigned(zero_extend(xlen, simm)); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -1084,13 +1071,13 @@ function clause execute(VISG(funct6, vm, vs2, simm, vd)) = { if i >= imm_val then vs2_val[i - imm_val] else vd_val[i] }, VI_VSLIDEDOWN => { - let VLMAX = int_power(2, LMUL_pow + VLEN_pow - SEW_pow); + let VLMAX = 2 ^ (LMUL_pow + VLEN_pow - SEW_pow); assert(VLMAX > 0 & VLMAX <= 'n); if i + imm_val < VLMAX then vs2_val[i + imm_val] else zeros() }, VI_VRGATHER => { if (vs2 == vd) then { handle_illegal(); return RETIRE_FAIL }; - let VLMAX = int_power(2, LMUL_pow + VLEN_pow - SEW_pow); + let VLMAX = 2 ^ (LMUL_pow + VLEN_pow - SEW_pow); assert(VLMAX > 0 & VLMAX <= 'n); if imm_val < VLMAX then vs2_val[imm_val] else zeros() } @@ -1131,11 +1118,11 @@ function clause execute(MASKTYPEI(vs2, simm, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, 0b00000); + let vm_val : vector('n, bool) = read_vmask(num_elem, 0b0, 0b00000); let imm_val : bits('m) = sign_extend(simm); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); + var result : vector('n, bits('m)) = vector_init(zeros()); let tail_ag : agtype = get_vtype_vta(); foreach (i from 0 to (num_elem - 1)) { @@ -1176,13 +1163,12 @@ function clause execute(MOVETYPEI(vd, simm)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, 0b1, 0b00000); + let vm_val : vector('n, bool) = read_vmask(num_elem, 0b1, 0b00000); let imm_val : bits('m) = sign_extend(simm); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then result[i] = imm_val @@ -1205,7 +1191,7 @@ mapping clause encdec = VMVRTYPE(vs2, simm, vd) if extensionEnabled(Ext_V) function clause execute(VMVRTYPE(vs2, simm, vd)) = { let start_element = get_start_element(); let SEW = get_sew(); - let imm_val = unsigned(zero_extend(sizeof(xlen), simm)); + let imm_val = unsigned(zero_extend(xlen, simm)); let EMUL = imm_val + 1; if not(EMUL == 1 | EMUL == 2 | EMUL == 4 | EMUL == 8) then { handle_illegal(); return RETIRE_FAIL }; @@ -1215,10 +1201,10 @@ function clause execute(VMVRTYPE(vs2, simm, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, 0b1, 0b00000); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, EMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, EMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, 0b1, 0b00000); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, EMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, EMUL_pow, vd); + var result : vector('n, bits('m)) = vector_init(zeros()); foreach (i from 0 to (num_elem - 1)) { result[i] = if i < start_element then vd_val[i] else vs2_val[i] @@ -1270,14 +1256,13 @@ function clause execute(MVVTYPE(funct6, vm, vs2, vs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -1379,14 +1364,13 @@ function clause execute(MVVMATYPE(funct6, vm, vs2, vs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -1445,14 +1429,13 @@ function clause execute(WVVTYPE(funct6, vm, vs2, vs1, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - result : vector('n, dec, bits('o)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - (result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -1514,14 +1497,13 @@ function clause execute(WVTYPE(funct6, vm, vs2, vs1, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - result : vector('n, dec, bits('o)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - (result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -1578,14 +1560,13 @@ function clause execute(WMVVTYPE(funct6, vm, vs2, vs1, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - result : vector('n, dec, bits('o)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - (result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -1638,15 +1619,13 @@ function clause execute(VEXT2TYPE(funct6, vm, vs2, vd)) = { let 'm = SEW; let 'o = SEW_half; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - let vs2_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_half, LMUL_pow_half, vs2); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); + let vs2_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_half, LMUL_pow_half, vs2); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; - assert(SEW > SEW_half); foreach (i from 0 to (num_elem - 1)) { if mask[i] then { result[i] = match funct6 { @@ -1696,15 +1675,13 @@ function clause execute(VEXT4TYPE(funct6, vm, vs2, vd)) = { let 'm = SEW; let 'o = SEW_quart; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - let vs2_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_quart, LMUL_pow_quart, vs2); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); + let vs2_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_quart, LMUL_pow_quart, vs2); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; - assert(SEW > SEW_quart); foreach (i from 0 to (num_elem - 1)) { if mask[i] then { result[i] = match funct6 { @@ -1754,13 +1731,12 @@ function clause execute(VEXT8TYPE(funct6, vm, vs2, vd)) = { let 'm = SEW; let 'o = SEW_eighth; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - let vs2_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_eighth, LMUL_pow_eighth, vs2); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); + let vs2_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_eighth, LMUL_pow_eighth, vs2); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; assert(SEW > SEW_eighth); foreach (i from 0 to (num_elem - 1)) { @@ -1801,9 +1777,9 @@ function clause execute(VMVXS(vs2, rd)) = { let 'n = num_elem; let 'm = SEW; - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, 0, vs2); - X(rd) = if sizeof(xlen) < SEW then slice(vs2_val[0], 0, sizeof(xlen)) - else if sizeof(xlen) > SEW then sign_extend(vs2_val[0]) + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, 0, vs2); + X(rd) = if xlen < SEW then slice(vs2_val[0], 0, xlen) + else if xlen > SEW then sign_extend(vs2_val[0]) else vs2_val[0]; vstart = zeros(); @@ -1833,13 +1809,13 @@ function clause execute(MVVCOMPRESS(vs2, vs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vs1_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; + let vs1_val : vector('n, bool) = read_vmask(num_elem, 0b0, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); + var result : vector('n, bits('m)) = vector_init(zeros()); /* body elements */ - vd_idx : nat = 0; + var vd_idx : nat = 0; foreach (i from 0 to (num_elem - 1)) { if i <= end_element then { if vs1_val[i] then { @@ -1903,14 +1879,13 @@ function clause execute(MVXTYPE(funct6, vm, vs2, rs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); let rs1_val : bits('m) = get_scalar(rs1, SEW); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -2023,14 +1998,13 @@ function clause execute(MVXMATYPE(funct6, vm, vs2, rs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); let rs1_val : bits('m) = get_scalar(rs1, SEW); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -2089,14 +2063,13 @@ function clause execute(WVXTYPE(funct6, vm, vs2, rs1, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); let rs1_val : bits('m) = get_scalar(rs1, SEW); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - result : vector('n, dec, bits('o)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - (result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -2157,14 +2130,13 @@ function clause execute(WXTYPE(funct6, vm, vs2, rs1, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); let rs1_val : bits('m) = get_scalar(rs1, SEW); - let vs2_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - result : vector('n, dec, bits('o)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - (result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -2221,14 +2193,13 @@ function clause execute(WMVXTYPE(funct6, vm, vs2, rs1, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); let rs1_val : bits('m) = get_scalar(rs1, SEW); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - result : vector('n, dec, bits('o)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - (result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -2272,13 +2243,12 @@ function clause execute(VMVSX(rs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, 0b1, 0b00000); + let vm_val : vector('n, bool) = read_vmask(num_elem, 0b1, 0b00000); let rs1_val : bits('m) = get_scalar(rs1, 'm); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, 0, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, 0, vd); - (result, mask) = init_masked_result(num_elem, SEW, 0, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, 0, vd_val, vm_val); + var result = initial_result; /* one body element */ if mask[0] then result[0] = rs1_val; diff --git a/model/riscv_insts_vext_fp.sail b/model/riscv_insts_vext_fp.sail index 945199d..bdfdc10 100755 --- a/model/riscv_insts_vext_fp.sail +++ b/model/riscv_insts_vext_fp.sail @@ -42,14 +42,13 @@ function clause execute(FVVTYPE(funct6, vm, vs2, vs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -117,14 +116,13 @@ function clause execute(FVVMATYPE(funct6, vm, vs2, vs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -190,14 +188,13 @@ function clause execute(FWVVTYPE(funct6, vm, vs2, vs1, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - result : vector('n, dec, bits('o)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - (result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -255,14 +252,13 @@ function clause execute(FWVVMATYPE(funct6, vm, vs1, vs2, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - result : vector('n, dec, bits('o)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - (result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -318,14 +314,13 @@ function clause execute(FWVTYPE(funct6, vm, vs2, vs1, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - result : vector('n, dec, bits('o)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - (result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -376,13 +371,12 @@ function clause execute(VFUNARY0(vm, vs2, vfunary0, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -495,13 +489,12 @@ function clause execute(VFWUNARY0(vm, vs2, vfwunary0, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); - result : vector('n, dec, bits('o)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); - (result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -625,13 +618,12 @@ function clause execute(VFNUNARY0(vm, vs2, vfnunary0, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs2_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs2_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -756,13 +748,12 @@ function clause execute(VFUNARY1(vm, vs2, vfunary1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -825,14 +816,14 @@ function clause execute(VFMVFS(vs2, rd)) = { let SEW = get_sew(); let num_elem = get_num_elem(0, SEW); - if illegal_fp_vd_unmasked(SEW, rm_3b) | SEW > sizeof(flen) + if illegal_fp_vd_unmasked(SEW, rm_3b) | SEW > flen then { handle_illegal(); return RETIRE_FAIL }; assert(num_elem > 0 & SEW != 8); let 'n = num_elem; let 'm = SEW; - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, 0, vs2); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, 0, vs2); match 'm { 16 => F_H(rd) = vs2_val[0], 32 => F_S(rd) = vs2_val[0], @@ -880,14 +871,13 @@ function clause execute(FVFTYPE(funct6, vm, vs2, rs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); let rs1_val : bits('m) = get_scalar_fp(rs1, 'm); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -970,14 +960,13 @@ function clause execute(FVFMATYPE(funct6, vm, vs2, rs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); let rs1_val : bits('m) = get_scalar_fp(rs1, 'm); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -1042,14 +1031,13 @@ function clause execute(FWVFTYPE(funct6, vm, vs2, rs1, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); let rs1_val : bits('m) = get_scalar_fp(rs1, 'm); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - result : vector('n, dec, bits('o)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - (result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -1106,14 +1094,13 @@ function clause execute(FWVFMATYPE(funct6, vm, rs1, vs2, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); let rs1_val : bits('m) = get_scalar_fp(rs1, 'm); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - result : vector('n, dec, bits('o)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - (result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -1168,14 +1155,13 @@ function clause execute(FWFTYPE(funct6, vm, vs2, rs1, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vd); let rs1_val : bits('m) = get_scalar_fp(rs1, 'm); - let vs2_val : vector('n, dec, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - result : vector('n, dec, bits('o)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('o)) = read_vreg(num_elem, SEW_widen, LMUL_pow_widen, vs2); - (result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW_widen, LMUL_pow_widen, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -1221,11 +1207,11 @@ function clause execute(VFMERGE(vs2, rs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, 0b00000); + let vm_val : vector('n, bool) = read_vmask(num_elem, 0b0, 0b00000); let rs1_val : bits('m) = get_scalar_fp(rs1, 'm); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); + var result : vector('n, bits('m)) = vector_init(zeros()); let tail_ag : agtype = get_vtype_vta(); foreach (i from 0 to (num_elem - 1)) { @@ -1270,12 +1256,11 @@ function clause execute(VFMV(rs1, vd)) = { let 'm = SEW; let rs1_val : bits('m) = get_scalar_fp(rs1, 'm); - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, 0b1, 0b00000); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, 0b1, 0b00000); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then result[i] = rs1_val @@ -1306,13 +1291,12 @@ function clause execute(VFMVSF(rs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, 0b1, 0b00000); + let vm_val : vector('n, bool) = read_vmask(num_elem, 0b1, 0b00000); let rs1_val : bits('m) = get_scalar_fp(rs1, 'm); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, 0, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, 0, vd); - (result, mask) = init_masked_result(num_elem, SEW, 0, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, 0, vd_val, vm_val); + var result = initial_result; /* one body element */ if mask[0] then result[0] = rs1_val; diff --git a/model/riscv_insts_vext_fp_red.sail b/model/riscv_insts_vext_fp_red.sail new file mode 100755 index 0000000..1c4946b --- /dev/null +++ b/model/riscv_insts_vext_fp_red.sail @@ -0,0 +1,127 @@ +/*=======================================================================================*/ +/* This Sail RISC-V architecture model, comprising all files and */ +/* directories except where otherwise noted is subject the BSD */ +/* two-clause license in the LICENSE file. */ +/* */ +/* SPDX-License-Identifier: BSD-2-Clause */ +/*=======================================================================================*/ + +/* ******************************************************************************* */ +/* This file implements part of the vector extension. */ +/* Chapter 14: Vector Reduction Instructions */ +/* ******************************************************************************* */ + +/* ********************** OPFVV (Floating-Point Reduction) *********************** */ +union clause ast = RFVVTYPE : (rfvvfunct6, bits(1), regidx, regidx, regidx) + +mapping encdec_rfvvfunct6 : rfvvfunct6 <-> bits(6) = { + FVV_VFREDOSUM <-> 0b000011, + FVV_VFREDUSUM <-> 0b000001, + FVV_VFREDMAX <-> 0b000111, + FVV_VFREDMIN <-> 0b000101, + FVV_VFWREDOSUM <-> 0b110011, + FVV_VFWREDUSUM <-> 0b110001 +} + +mapping clause encdec = RFVVTYPE(funct6, vm, vs2, vs1, vd) if extensionEnabled(Ext_V) + <-> encdec_rfvvfunct6(funct6) @ vm @ vs2 @ vs1 @ 0b001 @ vd @ 0b1010111 if extensionEnabled(Ext_V) + +val process_rfvv_single: forall 'n 'm 'p, 'n >= 0 & 'm in {8, 16, 32, 64}. (rfvvfunct6, bits(1), regidx, regidx, regidx, int('n), int('m), int('p)) -> Retired +function process_rfvv_single(funct6, vm, vs2, vs1, vd, num_elem_vs, SEW, LMUL_pow) = { + let rm_3b = fcsr[FRM]; + let num_elem_vd = get_num_elem(0, SEW); /* vd regardless of LMUL setting */ + + if illegal_fp_reduction(SEW, rm_3b) then { handle_illegal(); return RETIRE_FAIL }; + assert(SEW != 8); + + if unsigned(vl) == 0 then return RETIRE_SUCCESS; /* if vl=0, no operation is performed */ + + let 'n = num_elem_vs; + let 'd = num_elem_vd; + let 'm = SEW; + + let vm_val : vector('n, bool) = read_vmask(num_elem_vs, vm, 0b00000); + let vd_val : vector('d, bits('m)) = read_vreg(num_elem_vd, SEW, 0, vd); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem_vs, SEW, LMUL_pow, vs2); + let mask : vector('n, bool) = init_masked_source(num_elem_vs, LMUL_pow, vm_val); + + var sum : bits('m) = read_single_element(SEW, 0, vs1); /* vs1 regardless of LMUL setting */ + foreach (i from 0 to (num_elem_vs - 1)) { + if mask[i] then { + sum = match funct6 { + /* currently ordered/unordered sum reductions do the same operations */ + FVV_VFREDOSUM => fp_add(rm_3b, sum, vs2_val[i]), + FVV_VFREDUSUM => fp_add(rm_3b, sum, vs2_val[i]), + FVV_VFREDMAX => fp_max(sum, vs2_val[i]), + FVV_VFREDMIN => fp_min(sum, vs2_val[i]), + _ => internal_error(__FILE__, __LINE__, "Widening op unexpected") + } + } + }; + + write_single_element(SEW, 0, vd, sum); + /* other elements in vd are treated as tail elements, currently remain unchanged */ + /* TODO: configuration support for agnostic behavior */ + vstart = zeros(); + RETIRE_SUCCESS +} + +val process_rfvv_widen: forall 'n 'm 'p, 'n >= 0 & 'm in {8, 16, 32, 64}. (rfvvfunct6, bits(1), regidx, regidx, regidx, int('n), int('m), int('p)) -> Retired +function process_rfvv_widen(funct6, vm, vs2, vs1, vd, num_elem_vs, SEW, LMUL_pow) = { + let rm_3b = fcsr[FRM]; + let SEW_widen = SEW * 2; + let LMUL_pow_widen = LMUL_pow + 1; + let num_elem_vd = get_num_elem(0, SEW_widen); /* vd regardless of LMUL setting */ + + if illegal_fp_reduction_widen(SEW, rm_3b, SEW_widen, LMUL_pow_widen) then { handle_illegal(); return RETIRE_FAIL }; + assert(SEW >= 16 & SEW_widen <= 64); + + if unsigned(vl) == 0 then return RETIRE_SUCCESS; /* if vl=0, no operation is performed */ + + let 'n = num_elem_vs; + let 'd = num_elem_vd; + let 'm = SEW; + let 'o = SEW_widen; + + let vm_val : vector('n, bool) = read_vmask(num_elem_vs, vm, 0b00000); + let vd_val : vector('d, bits('o)) = read_vreg(num_elem_vd, SEW_widen, 0, vd); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem_vs, SEW, LMUL_pow, vs2); + let mask : vector('n, bool) = init_masked_source(num_elem_vs, LMUL_pow, vm_val); + + var sum : bits('o) = read_single_element(SEW_widen, 0, vs1); /* vs1 regardless of LMUL setting */ + foreach (i from 0 to (num_elem_vs - 1)) { + if mask[i] then { + /* currently ordered/unordered sum reductions do the same operations */ + sum = fp_add(rm_3b, sum, fp_widen(vs2_val[i])) + } + }; + + write_single_element(SEW_widen, 0, vd, sum); + /* other elements in vd are treated as tail elements, currently remain unchanged */ + /* TODO: configuration support for agnostic behavior */ + vstart = zeros(); + RETIRE_SUCCESS +} + +function clause execute(RFVVTYPE(funct6, vm, vs2, vs1, vd)) = { + let SEW = get_sew(); + let LMUL_pow = get_lmul_pow(); + let num_elem_vs = get_num_elem(LMUL_pow, SEW); + + if funct6 == FVV_VFWREDOSUM | funct6 == FVV_VFWREDUSUM then + process_rfvv_widen(funct6, vm, vs2, vs1, vd, num_elem_vs, SEW, LMUL_pow) + else + process_rfvv_single(funct6, vm, vs2, vs1, vd, num_elem_vs, SEW, LMUL_pow) +} + +mapping rfvvtype_mnemonic : rfvvfunct6 <-> string = { + FVV_VFREDOSUM <-> "vfredosum.vs", + FVV_VFREDUSUM <-> "vfredusum.vs", + FVV_VFREDMAX <-> "vfredmax.vs", + FVV_VFREDMIN <-> "vfredmin.vs", + FVV_VFWREDOSUM <-> "vfwredosum.vs", + FVV_VFWREDUSUM <-> "vfwredusum.vs" +} + +mapping clause assembly = RFVVTYPE(funct6, vm, vs2, vs1, vd) + <-> rfvvtype_mnemonic(funct6) ^ spc() ^ vreg_name(vd) ^ sep() ^ vreg_name(vs2) ^ sep() ^ vreg_name(vs1) ^ maybe_vmask(vm) diff --git a/model/riscv_insts_vext_fp_utils.sail b/model/riscv_insts_vext_fp_utils.sail new file mode 100755 index 0000000..d8e10d2 --- /dev/null +++ b/model/riscv_insts_vext_fp_utils.sail @@ -0,0 +1,663 @@ +/*=======================================================================================*/ +/* This Sail RISC-V architecture model, comprising all files and */ +/* directories except where otherwise noted is subject the BSD */ +/* two-clause license in the LICENSE file. */ +/* */ +/* SPDX-License-Identifier: BSD-2-Clause */ +/*=======================================================================================*/ + +/* ******************************************************************************* */ +/* This file implements functions used by vector instructions. */ +/* ******************************************************************************* */ + +/* Check for valid floating-point operation types + * 1. Valid element width of floating-point numbers + * 2. Valid floating-point rounding mode + */ +val valid_fp_op : ({8, 16, 32, 64}, bits(3)) -> bool +function valid_fp_op(SEW, rm_3b) = { + /* 128-bit floating-point values will be supported in future extensions */ + let valid_sew = (SEW >= 16 & SEW <= 128); + let valid_rm = not(rm_3b == 0b101 | rm_3b == 0b110 | rm_3b == 0b111); + valid_sew & valid_rm +} + +/* a. Normal check for floating-point instructions */ +val illegal_fp_normal : (regidx, bits(1), {8, 16, 32, 64}, bits(3)) -> bool +function illegal_fp_normal(vd, vm, SEW, rm_3b) = { + not(valid_vtype()) | not(valid_rd_mask(vd, vm)) | not(valid_fp_op(SEW, rm_3b)) +} + +/* b. Masked check for floating-point instructions encoded with vm = 0 */ +val illegal_fp_vd_masked : (regidx, {8, 16, 32, 64}, bits(3)) -> bool +function illegal_fp_vd_masked(vd, SEW, rm_3b) = { + not(valid_vtype()) | vd == 0b00000 | not(valid_fp_op(SEW, rm_3b)) +} + +/* c. Unmasked check for floating-point instructions encoded with vm = 1 */ +val illegal_fp_vd_unmasked : ({8, 16, 32, 64}, bits(3)) -> bool +function illegal_fp_vd_unmasked(SEW, rm_3b) = { + not(valid_vtype()) | not(valid_fp_op(SEW, rm_3b)) +} + +/* d. Variable width check for floating-point widening/narrowing instructions */ +val illegal_fp_variable_width : (regidx, bits(1), {8, 16, 32, 64}, bits(3), int, int) -> bool +function illegal_fp_variable_width(vd, vm, SEW, rm_3b, SEW_new, LMUL_pow_new) = { + not(valid_vtype()) | not(valid_rd_mask(vd, vm)) | not(valid_fp_op(SEW, rm_3b)) | + not(valid_eew_emul(SEW_new, LMUL_pow_new)) +} + +/* e. Normal check for floating-point reduction instructions */ +val illegal_fp_reduction : ({8, 16, 32, 64}, bits(3)) -> bool +function illegal_fp_reduction(SEW, rm_3b) = { + not(valid_vtype()) | not(assert_vstart(0)) | not(valid_fp_op(SEW, rm_3b)) +} + +/* f. Variable width check for floating-point widening reduction instructions */ +val illegal_fp_reduction_widen : ({8, 16, 32, 64}, bits(3), int, int) -> bool +function illegal_fp_reduction_widen(SEW, rm_3b, SEW_widen, LMUL_pow_widen) = { + not(valid_vtype()) | not(assert_vstart(0)) | not(valid_fp_op(SEW, rm_3b)) | + not(valid_eew_emul(SEW_widen, LMUL_pow_widen)) +} + +/* Floating point canonical NaN for 16-bit, 32-bit and 64-bit types */ +val canonical_NaN : forall 'm, 'm in {16, 32, 64}. int('m) -> bits('m) +function canonical_NaN('m) = { + match 'm { + 16 => canonical_NaN_H(), + 32 => canonical_NaN_S(), + 64 => canonical_NaN_D() + } +} + +/* Floating point classification functions */ +val f_is_neg_inf : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool +function f_is_neg_inf(xf) = { + match 'm { + 16 => f_is_neg_inf_H(xf), + 32 => f_is_neg_inf_S(xf), + 64 => f_is_neg_inf_D(xf) + } +} + +val f_is_neg_norm : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool +function f_is_neg_norm(xf) = { + match 'm { + 16 => f_is_neg_norm_H(xf), + 32 => f_is_neg_norm_S(xf), + 64 => f_is_neg_norm_D(xf) + } +} + +val f_is_neg_subnorm : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool +function f_is_neg_subnorm(xf) = { + match 'm { + 16 => f_is_neg_subnorm_H(xf), + 32 => f_is_neg_subnorm_S(xf), + 64 => f_is_neg_subnorm_D(xf) + } +} + +val f_is_neg_zero : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool +function f_is_neg_zero(xf) = { + match 'm { + 16 => f_is_neg_zero_H(xf), + 32 => f_is_neg_zero_S(xf), + 64 => f_is_neg_zero_D(xf) + } +} + +val f_is_pos_zero : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool +function f_is_pos_zero(xf) = { + match 'm { + 16 => f_is_pos_zero_H(xf), + 32 => f_is_pos_zero_S(xf), + 64 => f_is_pos_zero_D(xf) + } +} + +val f_is_pos_subnorm : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool +function f_is_pos_subnorm(xf) = { + match 'm { + 16 => f_is_pos_subnorm_H(xf), + 32 => f_is_pos_subnorm_S(xf), + 64 => f_is_pos_subnorm_D(xf) + } +} + +val f_is_pos_norm : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool +function f_is_pos_norm(xf) = { + match 'm { + 16 => f_is_pos_norm_H(xf), + 32 => f_is_pos_norm_S(xf), + 64 => f_is_pos_norm_D(xf) + } +} + +val f_is_pos_inf : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool +function f_is_pos_inf(xf) = { + match 'm { + 16 => f_is_pos_inf_H(xf), + 32 => f_is_pos_inf_S(xf), + 64 => f_is_pos_inf_D(xf) + } +} + +val f_is_SNaN : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool +function f_is_SNaN(xf) = { + match 'm { + 16 => f_is_SNaN_H(xf), + 32 => f_is_SNaN_S(xf), + 64 => f_is_SNaN_D(xf) + } +} + +val f_is_QNaN : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool +function f_is_QNaN(xf) = { + match 'm { + 16 => f_is_QNaN_H(xf), + 32 => f_is_QNaN_S(xf), + 64 => f_is_QNaN_D(xf) + } +} + +val f_is_NaN : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool +function f_is_NaN(xf) = { + match 'm { + 16 => f_is_NaN_H(xf), + 32 => f_is_NaN_S(xf), + 64 => f_is_NaN_D(xf) + } +} + +/* Scalar register shaping for floating point operations */ +val get_scalar_fp : forall 'n, 'n in {16, 32, 64}. (regidx, int('n)) -> bits('n) +function get_scalar_fp(rs1, SEW) = { + assert(flen >= SEW, "invalid vector floating-point type width: FLEN < SEW"); + match SEW { + 16 => F_H(rs1), + 32 => F_S(rs1), + 64 => F_D(rs1) + } +} + +/* Get the floating point rounding mode from csr fcsr */ +val get_fp_rounding_mode : unit -> rounding_mode +function get_fp_rounding_mode() = encdec_rounding_mode(fcsr[FRM]) + +/* Negate a floating point number */ +val negate_fp : forall 'm, 'm in {16, 32, 64}. bits('m) -> bits('m) +function negate_fp(xf) = { + match 'm { + 16 => negate_H(xf), + 32 => negate_S(xf), + 64 => negate_D(xf) + } +} + +/* Floating point functions using softfloat interface */ +val fp_add: forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m)) -> bits('m) +function fp_add(rm_3b, op1, op2) = { + let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { + 16 => riscv_f16Add(rm_3b, op1, op2), + 32 => riscv_f32Add(rm_3b, op1, op2), + 64 => riscv_f64Add(rm_3b, op1, op2) + }; + accrue_fflags(fflags); + result_val +} + +val fp_sub: forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m)) -> bits('m) +function fp_sub(rm_3b, op1, op2) = { + let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { + 16 => riscv_f16Sub(rm_3b, op1, op2), + 32 => riscv_f32Sub(rm_3b, op1, op2), + 64 => riscv_f64Sub(rm_3b, op1, op2) + }; + accrue_fflags(fflags); + result_val +} + +val fp_min : forall 'm, 'm in {16, 32, 64}. (bits('m), bits('m)) -> bits('m) +function fp_min(op1, op2) = { + let (fflags, op1_lt_op2) : (bits_fflags, bool) = match 'm { + 16 => riscv_f16Lt_quiet(op1, op2), + 32 => riscv_f32Lt_quiet(op1, op2), + 64 => riscv_f64Lt_quiet(op1, op2) + }; + + let result_val = if (f_is_NaN(op1) & f_is_NaN(op2)) then canonical_NaN('m) + else if f_is_NaN(op1) then op2 + else if f_is_NaN(op2) then op1 + else if (f_is_neg_zero(op1) & f_is_pos_zero(op2)) then op1 + else if (f_is_neg_zero(op2) & f_is_pos_zero(op1)) then op2 + else if op1_lt_op2 then op1 + else op2; + accrue_fflags(fflags); + result_val +} + +val fp_max : forall 'm, 'm in {16, 32, 64}. (bits('m), bits('m)) -> bits('m) +function fp_max(op1, op2) = { + let (fflags, op1_lt_op2) : (bits_fflags, bool) = match 'm { + 16 => riscv_f16Lt_quiet(op1, op2), + 32 => riscv_f32Lt_quiet(op1, op2), + 64 => riscv_f64Lt_quiet(op1, op2) + }; + + let result_val = if (f_is_NaN(op1) & f_is_NaN(op2)) then canonical_NaN('m) + else if f_is_NaN(op1) then op2 + else if f_is_NaN(op2) then op1 + else if (f_is_neg_zero(op1) & f_is_pos_zero(op2)) then op2 + else if (f_is_neg_zero(op2) & f_is_pos_zero(op1)) then op1 + else if op1_lt_op2 then op2 + else op1; + accrue_fflags(fflags); + result_val +} + +val fp_eq : forall 'm, 'm in {16, 32, 64}. (bits('m), bits('m)) -> bool +function fp_eq(op1, op2) = { + let (fflags, result_val) : (bits_fflags, bool) = match 'm { + 16 => riscv_f16Eq(op1, op2), + 32 => riscv_f32Eq(op1, op2), + 64 => riscv_f64Eq(op1, op2) + }; + accrue_fflags(fflags); + result_val +} + +val fp_gt : forall 'm, 'm in {16, 32, 64}. (bits('m), bits('m)) -> bool +function fp_gt(op1, op2) = { + let (fflags, temp_val) : (bits_fflags, bool) = match 'm { + 16 => riscv_f16Le(op1, op2), + 32 => riscv_f32Le(op1, op2), + 64 => riscv_f64Le(op1, op2) + }; + let result_val = (if fflags == 0b10000 then false else not(temp_val)); + accrue_fflags(fflags); + result_val +} + +val fp_ge : forall 'm, 'm in {16, 32, 64}. (bits('m), bits('m)) -> bool +function fp_ge(op1, op2) = { + let (fflags, temp_val) : (bits_fflags, bool) = match 'm { + 16 => riscv_f16Lt(op1, op2), + 32 => riscv_f32Lt(op1, op2), + 64 => riscv_f64Lt(op1, op2) + }; + let result_val = (if fflags == 0b10000 then false else not(temp_val)); + accrue_fflags(fflags); + result_val +} + +val fp_lt : forall 'm, 'm in {16, 32, 64}. (bits('m), bits('m)) -> bool +function fp_lt(op1, op2) = { + let (fflags, result_val) : (bits_fflags, bool) = match 'm { + 16 => riscv_f16Lt(op1, op2), + 32 => riscv_f32Lt(op1, op2), + 64 => riscv_f64Lt(op1, op2) + }; + accrue_fflags(fflags); + result_val +} + +val fp_le : forall 'm, 'm in {16, 32, 64}. (bits('m), bits('m)) -> bool +function fp_le(op1, op2) = { + let (fflags, result_val) : (bits_fflags, bool) = match 'm { + 16 => riscv_f16Le(op1, op2), + 32 => riscv_f32Le(op1, op2), + 64 => riscv_f64Le(op1, op2) + }; + accrue_fflags(fflags); + result_val +} + +val fp_mul : forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m)) -> bits('m) +function fp_mul(rm_3b, op1, op2) = { + let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { + 16 => riscv_f16Mul(rm_3b, op1, op2), + 32 => riscv_f32Mul(rm_3b, op1, op2), + 64 => riscv_f64Mul(rm_3b, op1, op2) + }; + accrue_fflags(fflags); + result_val +} + +val fp_div : forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m)) -> bits('m) +function fp_div(rm_3b, op1, op2) = { + let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { + 16 => riscv_f16Div(rm_3b, op1, op2), + 32 => riscv_f32Div(rm_3b, op1, op2), + 64 => riscv_f64Div(rm_3b, op1, op2) + }; + accrue_fflags(fflags); + result_val +} + +val fp_muladd : forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m), bits('m)) -> bits('m) +function fp_muladd(rm_3b, op1, op2, opadd) = { + let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { + 16 => riscv_f16MulAdd(rm_3b, op1, op2, opadd), + 32 => riscv_f32MulAdd(rm_3b, op1, op2, opadd), + 64 => riscv_f64MulAdd(rm_3b, op1, op2, opadd) + }; + accrue_fflags(fflags); + result_val +} + +val fp_nmuladd : forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m), bits('m)) -> bits('m) +function fp_nmuladd(rm_3b, op1, op2, opadd) = { + let op1 = negate_fp(op1); + let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { + 16 => riscv_f16MulAdd(rm_3b, op1, op2, opadd), + 32 => riscv_f32MulAdd(rm_3b, op1, op2, opadd), + 64 => riscv_f64MulAdd(rm_3b, op1, op2, opadd) + }; + accrue_fflags(fflags); + result_val +} + +val fp_mulsub : forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m), bits('m)) -> bits('m) +function fp_mulsub(rm_3b, op1, op2, opsub) = { + let opsub = negate_fp(opsub); + let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { + 16 => riscv_f16MulAdd(rm_3b, op1, op2, opsub), + 32 => riscv_f32MulAdd(rm_3b, op1, op2, opsub), + 64 => riscv_f64MulAdd(rm_3b, op1, op2, opsub) + }; + accrue_fflags(fflags); + result_val +} + +val fp_nmulsub : forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m), bits('m)) -> bits('m) +function fp_nmulsub(rm_3b, op1, op2, opsub) = { + let opsub = negate_fp(opsub); + let op1 = negate_fp(op1); + let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { + 16 => riscv_f16MulAdd(rm_3b, op1, op2, opsub), + 32 => riscv_f32MulAdd(rm_3b, op1, op2, opsub), + 64 => riscv_f64MulAdd(rm_3b, op1, op2, opsub) + }; + accrue_fflags(fflags); + result_val +} + +val fp_class : forall 'm, 'm in {16, 32, 64}. bits('m) -> bits('m) +function fp_class(xf) = { + let result_val_10b : bits(10) = + if f_is_neg_inf(xf) then 0b_00_0000_0001 + else if f_is_neg_norm(xf) then 0b_00_0000_0010 + else if f_is_neg_subnorm(xf) then 0b_00_0000_0100 + else if f_is_neg_zero(xf) then 0b_00_0000_1000 + else if f_is_pos_zero(xf) then 0b_00_0001_0000 + else if f_is_pos_subnorm(xf) then 0b_00_0010_0000 + else if f_is_pos_norm(xf) then 0b_00_0100_0000 + else if f_is_pos_inf(xf) then 0b_00_1000_0000 + else if f_is_SNaN(xf) then 0b_01_0000_0000 + else if f_is_QNaN(xf) then 0b_10_0000_0000 + else zeros(); + + zero_extend(result_val_10b) +} + +val fp_widen : forall 'm, 'm in {16, 32}. bits('m) -> bits('m * 2) +function fp_widen(nval) = { + let rm_3b = fcsr[FRM]; + let (fflags, wval) : (bits_fflags, bits('m * 2)) = match 'm { + 16 => riscv_f16ToF32(rm_3b, nval), + 32 => riscv_f32ToF64(rm_3b, nval) + }; + accrue_fflags(fflags); + wval +} + +/* Floating point functions without softfloat support */ +val riscv_f16ToI16 : (bits_rm, bits_H) -> (bits_fflags, bits(16)) +function riscv_f16ToI16 (rm, v) = { + let (_, sig32) = riscv_f16ToI32(rm, v); + if signed(sig32) > signed(0b0 @ ones(15)) then (nvFlag(), 0b0 @ ones(15)) + else if signed(sig32) < signed(0b1 @ zeros(15)) then (nvFlag(), 0b1 @ zeros(15)) + else (zeros(5), sig32[15 .. 0]); +} + +val riscv_f16ToI8 : (bits_rm, bits_H) -> (bits_fflags, bits(8)) +function riscv_f16ToI8 (rm, v) = { + let (_, sig32) = riscv_f16ToI32(rm, v); + if signed(sig32) > signed(0b0 @ ones(7)) then (nvFlag(), 0b0 @ ones(7)) + else if signed(sig32) < signed(0b1 @ zeros(7)) then (nvFlag(), 0b1 @ zeros(7)) + else (zeros(5), sig32[7 .. 0]); +} + +val riscv_f32ToI16 : (bits_rm, bits_S) -> (bits_fflags, bits(16)) +function riscv_f32ToI16 (rm, v) = { + let (_, sig32) = riscv_f32ToI32(rm, v); + if signed(sig32) > signed(0b0 @ ones(15)) then (nvFlag(), 0b0 @ ones(15)) + else if signed(sig32) < signed(0b1 @ zeros(15)) then (nvFlag(), 0b1 @ zeros(15)) + else (zeros(5), sig32[15 .. 0]); +} + +val riscv_f16ToUi16 : (bits_rm, bits_H) -> (bits_fflags, bits(16)) +function riscv_f16ToUi16 (rm, v) = { + let (_, sig32) = riscv_f16ToUi32(rm, v); + if unsigned(sig32) > unsigned(ones(16)) then (nvFlag(), ones(16)) + else (zeros(5), sig32[15 .. 0]); +} + +val riscv_f16ToUi8 : (bits_rm, bits_H) -> (bits_fflags, bits(8)) +function riscv_f16ToUi8 (rm, v) = { + let (_, sig32) = riscv_f16ToUi32(rm, v); + if unsigned(sig32) > unsigned(ones(8)) then (nvFlag(), ones(8)) + else (zeros(5), sig32[7 .. 0]); +} + +val riscv_f32ToUi16 : (bits_rm, bits_S) -> (bits_fflags, bits(16)) +function riscv_f32ToUi16 (rm, v) = { + let (_, sig32) = riscv_f32ToUi32(rm, v); + if unsigned(sig32) > unsigned(ones(16)) then (nvFlag(), ones(16)) + else (zeros(5), sig32[15 .. 0]); +} + +val rsqrt7 : forall 'm, 'm in {16, 32, 64}. (bits('m), bool) -> bits_D +function rsqrt7 (v, sub) = { + let (sig, exp, sign, e, s) : (bits(64), bits(64), bits(1), nat, nat) = match 'm { + 16 => (zero_extend(64, v[9 .. 0]), zero_extend(64, v[14 .. 10]), [v[15]], 5, 10), + 32 => (zero_extend(64, v[22 .. 0]), zero_extend(64, v[30 .. 23]), [v[31]], 8, 23), + 64 => (zero_extend(64, v[51 .. 0]), zero_extend(64, v[62 .. 52]), [v[63]], 11, 52) + }; + assert(s == 10 & e == 5 | s == 23 & e == 8 | s == 52 & e == 11); + let table : vector(128, int) = [ + 52, 51, 50, 48, 47, 46, 44, 43, + 42, 41, 40, 39, 38, 36, 35, 34, + 33, 32, 31, 30, 30, 29, 28, 27, + 26, 25, 24, 23, 23, 22, 21, 20, + 19, 19, 18, 17, 16, 16, 15, 14, + 14, 13, 12, 12, 11, 10, 10, 9, + 9, 8, 7, 7, 6, 6, 5, 4, + 4, 3, 3, 2, 2, 1, 1, 0, + 127, 125, 123, 121, 119, 118, 116, 114, + 113, 111, 109, 108, 106, 105, 103, 102, + 100, 99, 97, 96, 95, 93, 92, 91, + 90, 88, 87, 86, 85, 84, 83, 82, + 80, 79, 78, 77, 76, 75, 74, 73, + 72, 71, 70, 70, 69, 68, 67, 66, + 65, 64, 63, 63, 62, 61, 60, 59, + 59, 58, 57, 56, 56, 55, 54, 53]; + + let (normalized_exp, normalized_sig) = + if sub then { + let nr_leadingzeros = count_leadingzeros(sig, s); + assert(nr_leadingzeros >= 0); + (to_bits(64, (0 - nr_leadingzeros)), zero_extend(64, sig[(s - 1) .. 0] << (1 + nr_leadingzeros))) + } else { + (exp, sig) + }; + + let idx : nat = match 'm { + 16 => unsigned([normalized_exp[0]] @ normalized_sig[9 .. 4]), + 32 => unsigned([normalized_exp[0]] @ normalized_sig[22 .. 17]), + 64 => unsigned([normalized_exp[0]] @ normalized_sig[51 .. 46]) + }; + assert(idx >= 0 & idx < 128); + let out_sig = to_bits(s, table[(127 - idx)]) << (s - 7); + let out_exp = to_bits(e, (3 * (2 ^ (e - 1) - 1) - 1 - signed(normalized_exp)) / 2); + zero_extend(64, sign @ out_exp @ out_sig) +} + +val riscv_f16Rsqrte7 : (bits_rm, bits_H) -> (bits_fflags, bits_H) +function riscv_f16Rsqrte7 (rm, v) = { + match fp_class(v) { + 0x0001 => (nvFlag(), 0x7e00), + 0x0002 => (nvFlag(), 0x7e00), + 0x0004 => (nvFlag(), 0x7e00), + 0x0100 => (nvFlag(), 0x7e00), + 0x0200 => (zeros(5), 0x7e00), + 0x0008 => (dzFlag(), 0xfc00), + 0x0010 => (dzFlag(), 0x7c00), + 0x0080 => (zeros(5), 0x0000), + 0x0020 => (zeros(5), rsqrt7(v, true)[15 .. 0]), + _ => (zeros(5), rsqrt7(v, false)[15 .. 0]) + } +} + +val riscv_f32Rsqrte7 : (bits_rm, bits_S) -> (bits_fflags, bits_S) +function riscv_f32Rsqrte7 (rm, v) = { + match fp_class(v)[15 .. 0] { + 0x0001 => (nvFlag(), 0x7fc00000), + 0x0002 => (nvFlag(), 0x7fc00000), + 0x0004 => (nvFlag(), 0x7fc00000), + 0x0100 => (nvFlag(), 0x7fc00000), + 0x0200 => (zeros(5), 0x7fc00000), + 0x0008 => (dzFlag(), 0xff800000), + 0x0010 => (dzFlag(), 0x7f800000), + 0x0080 => (zeros(5), 0x00000000), + 0x0020 => (zeros(5), rsqrt7(v, true)[31 .. 0]), + _ => (zeros(5), rsqrt7(v, false)[31 .. 0]) + } +} + +val riscv_f64Rsqrte7 : (bits_rm, bits_D) -> (bits_fflags, bits_D) +function riscv_f64Rsqrte7 (rm, v) = { + match fp_class(v)[15 .. 0] { + 0x0001 => (nvFlag(), 0x7ff8000000000000), + 0x0002 => (nvFlag(), 0x7ff8000000000000), + 0x0004 => (nvFlag(), 0x7ff8000000000000), + 0x0100 => (nvFlag(), 0x7ff8000000000000), + 0x0200 => (zeros(5), 0x7ff8000000000000), + 0x0008 => (dzFlag(), 0xfff0000000000000), + 0x0010 => (dzFlag(), 0x7ff0000000000000), + 0x0080 => (zeros(5), zeros(64)), + 0x0020 => (zeros(5), rsqrt7(v, true)[63 .. 0]), + _ => (zeros(5), rsqrt7(v, false)[63 .. 0]) + } +} + +val recip7 : forall 'm, 'm in {16, 32, 64}. (bits('m), bits(3), bool) -> (bool, bits_D) +function recip7 (v, rm_3b, sub) = { + let (sig, exp, sign, e, s) : (bits(64), bits(64), bits(1), nat, nat) = match 'm { + 16 => (zero_extend(64, v[9 .. 0]), zero_extend(64, v[14 .. 10]), [v[15]], 5, 10), + 32 => (zero_extend(64, v[22 .. 0]), zero_extend(64, v[30 .. 23]), [v[31]], 8, 23), + 64 => (zero_extend(64, v[51 .. 0]), zero_extend(64, v[62 .. 52]), [v[63]], 11, 52) + }; + assert(s == 10 & e == 5 | s == 23 & e == 8 | s == 52 & e == 11); + let table : vector(128, int) = [ + 127, 125, 123, 121, 119, 117, 116, 114, + 112, 110, 109, 107, 105, 104, 102, 100, + 99, 97, 96, 94, 93, 91, 90, 88, + 87, 85, 84, 83, 81, 80, 79, 77, + 76, 75, 74, 72, 71, 70, 69, 68, + 66, 65, 64, 63, 62, 61, 60, 59, + 58, 57, 56, 55, 54, 53, 52, 51, + 50, 49, 48, 47, 46, 45, 44, 43, + 42, 41, 40, 40, 39, 38, 37, 36, + 35, 35, 34, 33, 32, 31, 31, 30, + 29, 28, 28, 27, 26, 25, 25, 24, + 23, 23, 22, 21, 21, 20, 19, 19, + 18, 17, 17, 16, 15, 15, 14, 14, + 13, 12, 12, 11, 11, 10, 9, 9, + 8, 8, 7, 7, 6, 5, 5, 4, + 4, 3, 3, 2, 2, 1, 1, 0]; + + let nr_leadingzeros = count_leadingzeros(sig, s); + assert(nr_leadingzeros >= 0); + let (normalized_exp, normalized_sig) = + if sub then { + (to_bits(64, (0 - nr_leadingzeros)), zero_extend(64, sig[(s - 1) .. 0] << (1 + nr_leadingzeros))) + } else { + (exp, sig) + }; + + let idx : nat = match 'm { + 16 => unsigned(normalized_sig[9 .. 3]), + 32 => unsigned(normalized_sig[22 .. 16]), + 64 => unsigned(normalized_sig[51 .. 45]) + }; + assert(idx >= 0 & idx < 128); + let mid_exp = to_bits(e, 2 * (2 ^ (e - 1) - 1) - 1 - signed(normalized_exp)); + let mid_sig = to_bits(s, table[(127 - idx)]) << (s - 7); + + let (out_exp, out_sig)= + if mid_exp == zeros(e) then { + (mid_exp, mid_sig >> 1 | 0b1 @ zeros(s - 1)) + } else if mid_exp == ones(e) then { + (zeros(e), mid_sig >> 2 | 0b01 @ zeros(s - 2)) + } else (mid_exp, mid_sig); + + if sub & nr_leadingzeros > 1 then { + if (rm_3b == 0b001 | rm_3b == 0b010 & sign == 0b0 | rm_3b == 0b011 & sign == 0b1) then { + (true, zero_extend(64, sign @ ones(e - 1) @ 0b0 @ ones(s))) + } + else (true, zero_extend(64, sign @ ones(e) @ zeros(s))) + } else (false, zero_extend(64, sign @ out_exp @ out_sig)) +} + +val riscv_f16Recip7 : (bits_rm, bits_H) -> (bits_fflags, bits_H) +function riscv_f16Recip7 (rm, v) = { + let (round_abnormal_true, res_true) = recip7(v, rm, true); + let (round_abnormal_false, res_false) = recip7(v, rm, false); + match fp_class(v) { + 0x0001 => (zeros(5), 0x8000), + 0x0080 => (zeros(5), 0x0000), + 0x0008 => (dzFlag(), 0xfc00), + 0x0010 => (dzFlag(), 0x7c00), + 0x0100 => (nvFlag(), 0x7e00), + 0x0200 => (zeros(5), 0x7e00), + 0x0004 => if round_abnormal_true then (nxFlag() | ofFlag(), res_true[15 .. 0]) else (zeros(5), res_true[15 .. 0]), + 0x0020 => if round_abnormal_true then (nxFlag() | ofFlag(), res_true[15 .. 0]) else (zeros(5), res_true[15 .. 0]), + _ => if round_abnormal_false then (nxFlag() | ofFlag(), res_false[15 .. 0]) else (zeros(5), res_false[15 .. 0]) + } +} + +val riscv_f32Recip7 : (bits_rm, bits_S) -> (bits_fflags, bits_S) +function riscv_f32Recip7 (rm, v) = { + let (round_abnormal_true, res_true) = recip7(v, rm, true); + let (round_abnormal_false, res_false) = recip7(v, rm, false); + match fp_class(v)[15 .. 0] { + 0x0001 => (zeros(5), 0x80000000), + 0x0080 => (zeros(5), 0x00000000), + 0x0008 => (dzFlag(), 0xff800000), + 0x0010 => (dzFlag(), 0x7f800000), + 0x0100 => (nvFlag(), 0x7fc00000), + 0x0200 => (zeros(5), 0x7fc00000), + 0x0004 => if round_abnormal_true then (nxFlag() | ofFlag(), res_true[31 .. 0]) else (zeros(5), res_true[31 .. 0]), + 0x0020 => if round_abnormal_true then (nxFlag() | ofFlag(), res_true[31 .. 0]) else (zeros(5), res_true[31 .. 0]), + _ => if round_abnormal_false then (nxFlag() | ofFlag(), res_false[31 .. 0]) else (zeros(5), res_false[31 .. 0]) + } +} + +val riscv_f64Recip7 : (bits_rm, bits_D) -> (bits_fflags, bits_D) +function riscv_f64Recip7 (rm, v) = { + let (round_abnormal_true, res_true) = recip7(v, rm, true); + let (round_abnormal_false, res_false) = recip7(v, rm, false); + match fp_class(v)[15 .. 0] { + 0x0001 => (zeros(5), 0x8000000000000000), + 0x0080 => (zeros(5), 0x0000000000000000), + 0x0008 => (dzFlag(), 0xfff0000000000000), + 0x0010 => (dzFlag(), 0x7ff0000000000000), + 0x0100 => (nvFlag(), 0x7ff8000000000000), + 0x0200 => (zeros(5), 0x7ff8000000000000), + 0x0004 => if round_abnormal_true then (nxFlag() | ofFlag(), res_true[63 .. 0]) else (zeros(5), res_true[63 .. 0]), + 0x0020 => if round_abnormal_true then (nxFlag() | ofFlag(), res_true[63 .. 0]) else (zeros(5), res_true[63 .. 0]), + _ => if round_abnormal_false then (nxFlag() | ofFlag(), res_false[63 .. 0]) else (zeros(5), res_false[63 .. 0]) + } +} diff --git a/model/riscv_insts_vext_fp_vm.sail b/model/riscv_insts_vext_fp_vm.sail new file mode 100755 index 0000000..2fb4d3e --- /dev/null +++ b/model/riscv_insts_vext_fp_vm.sail @@ -0,0 +1,140 @@ +/*=======================================================================================*/ +/* This Sail RISC-V architecture model, comprising all files and */ +/* directories except where otherwise noted is subject the BSD */ +/* two-clause license in the LICENSE file. */ +/* */ +/* SPDX-License-Identifier: BSD-2-Clause */ +/*=======================================================================================*/ + +/* ******************************************************************************* */ +/* This file implements part of the vector extension. */ +/* Mask instructions from Chap 13 (floating-point) */ +/* ******************************************************************************* */ + +/* ******************************* OPFVV (VVMTYPE) ******************************* */ +/* FVVM instructions' destination is a mask register */ +union clause ast = FVVMTYPE : (fvvmfunct6, bits(1), regidx, regidx, regidx) + +mapping encdec_fvvmfunct6 : fvvmfunct6 <-> bits(6) = { + FVVM_VMFEQ <-> 0b011000, + FVVM_VMFLE <-> 0b011001, + FVVM_VMFLT <-> 0b011011, + FVVM_VMFNE <-> 0b011100 +} + +mapping clause encdec = FVVMTYPE(funct6, vm, vs2, vs1, vd) if extensionEnabled(Ext_V) + <-> encdec_fvvmfunct6(funct6) @ vm @ vs2 @ vs1 @ 0b001 @ vd @ 0b1010111 if extensionEnabled(Ext_V) + +function clause execute(FVVMTYPE(funct6, vm, vs2, vs1, vd)) = { + let rm_3b = fcsr[FRM]; + let SEW = get_sew(); + let LMUL_pow = get_lmul_pow(); + let num_elem = get_num_elem(LMUL_pow, SEW); + + if illegal_fp_vd_unmasked(SEW, rm_3b) then { handle_illegal(); return RETIRE_FAIL }; + assert(SEW != 8); + + let 'n = num_elem; + let 'm = SEW; + + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bool) = read_vmask(num_elem, 0b0, vd); + + let (initial_result, mask) = init_masked_result_cmp(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; + + foreach (i from 0 to (num_elem - 1)) { + if mask[i] then { + let res : bool = match funct6 { + FVVM_VMFEQ => fp_eq(vs2_val[i], vs1_val[i]), + FVVM_VMFNE => ~(fp_eq(vs2_val[i], vs1_val[i])), + FVVM_VMFLE => fp_le(vs2_val[i], vs1_val[i]), + FVVM_VMFLT => fp_lt(vs2_val[i], vs1_val[i]) + }; + result[i] = res + } + }; + + write_vmask(num_elem, vd, result); + vstart = zeros(); + RETIRE_SUCCESS +} + +mapping fvvmtype_mnemonic : fvvmfunct6 <-> string = { + FVVM_VMFEQ <-> "vmfeq.vv", + FVVM_VMFLE <-> "vmfle.vv", + FVVM_VMFLT <-> "vmflt.vv", + FVVM_VMFNE <-> "vmfne.vv" +} + +mapping clause assembly = FVVMTYPE(funct6, vm, vs2, vs1, vd) + <-> fvvmtype_mnemonic(funct6) ^ spc() ^ vreg_name(vd) ^ sep() ^ vreg_name(vs2) ^ sep() ^ vreg_name(vs1) ^ maybe_vmask(vm) + +/* ******************************* OPFVF (VFMTYPE) ******************************* */ +/* VFM instructions' destination is a mask register */ +union clause ast = FVFMTYPE : (fvfmfunct6, bits(1), regidx, regidx, regidx) + +mapping encdec_fvfmfunct6 : fvfmfunct6 <-> bits(6) = { + VFM_VMFEQ <-> 0b011000, + VFM_VMFLE <-> 0b011001, + VFM_VMFLT <-> 0b011011, + VFM_VMFNE <-> 0b011100, + VFM_VMFGT <-> 0b011101, + VFM_VMFGE <-> 0b011111 +} + +mapping clause encdec = FVFMTYPE(funct6, vm, vs2, rs1, vd) if extensionEnabled(Ext_V) + <-> encdec_fvfmfunct6(funct6) @ vm @ vs2 @ rs1 @ 0b101 @ vd @ 0b1010111 if extensionEnabled(Ext_V) + +function clause execute(FVFMTYPE(funct6, vm, vs2, rs1, vd)) = { + let rm_3b = fcsr[FRM]; + let SEW = get_sew(); + let LMUL_pow = get_lmul_pow(); + let num_elem = get_num_elem(LMUL_pow, SEW); + + if illegal_fp_vd_unmasked(SEW, rm_3b) then { handle_illegal(); return RETIRE_FAIL }; + assert(SEW != 8); + + let 'n = num_elem; + let 'm = SEW; + + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let rs1_val : bits('m) = get_scalar_fp(rs1, 'm); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bool) = read_vmask(num_elem, 0b0, vd); + + let (initial_result, mask) = init_masked_result_cmp(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; + + foreach (i from 0 to (num_elem - 1)) { + if mask[i] then { + let res : bool = match funct6 { + VFM_VMFEQ => fp_eq(vs2_val[i], rs1_val), + VFM_VMFNE => ~(fp_eq(vs2_val[i], rs1_val)), + VFM_VMFLE => fp_le(vs2_val[i], rs1_val), + VFM_VMFLT => fp_lt(vs2_val[i], rs1_val), + VFM_VMFGE => fp_ge(vs2_val[i], rs1_val), + VFM_VMFGT => fp_gt(vs2_val[i], rs1_val) + }; + result[i] = res + } + }; + + write_vmask(num_elem, vd, result); + vstart = zeros(); + RETIRE_SUCCESS +} + +mapping fvfmtype_mnemonic : fvfmfunct6 <-> string = { + VFM_VMFEQ <-> "vmfeq.vf", + VFM_VMFLE <-> "vmfle.vf", + VFM_VMFLT <-> "vmflt.vf", + VFM_VMFNE <-> "vmfne.vf", + VFM_VMFGT <-> "vmfgt.vf", + VFM_VMFGE <-> "vmfge.vf" +} + +mapping clause assembly = FVFMTYPE(funct6, vm, vs2, rs1, vd) + <-> fvfmtype_mnemonic(funct6) ^ spc() ^ vreg_name(vd) ^ sep() ^ vreg_name(vs2) ^ sep() ^ reg_name(rs1) ^ maybe_vmask(vm) diff --git a/model/riscv_insts_vext_mask.sail b/model/riscv_insts_vext_mask.sail index 241e210..ae30bc1 100755 --- a/model/riscv_insts_vext_mask.sail +++ b/model/riscv_insts_vext_mask.sail @@ -31,20 +31,19 @@ mapping clause encdec = MMTYPE(funct6, vs2, vs1, vd) if extensionEnabled(Ext_V) function clause execute(MMTYPE(funct6, vs2, vs1, vd)) = { let SEW = get_sew(); let LMUL_pow = get_lmul_pow(); - let num_elem = unsigned(vlenb) * 8; + let num_elem = VLEN; if illegal_vd_unmasked() then { handle_illegal(); return RETIRE_FAIL }; let 'n = num_elem; let 'm = SEW; - let vs1_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vs1); - let vs2_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vs2); - let vd_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vd); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs1_val : vector('n, bool) = read_vmask(num_elem, 0b0, vs1); + let vs2_val : vector('n, bool) = read_vmask(num_elem, 0b0, vs2); + let vd_val : vector('n, bool) = read_vmask(num_elem, 0b0, vd); - (result, mask) = init_masked_result_carry(num_elem, SEW, 0, vd_val); + let (initial_result, mask) = init_masked_result_carry(num_elem, SEW, 0, vd_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -89,26 +88,24 @@ mapping clause encdec = VCPOP_M(vm, vs2, rd) if extensionEnabled(Ext_V) function clause execute(VCPOP_M(vm, vs2, rd)) = { let SEW = get_sew(); let LMUL_pow = get_lmul_pow(); - let num_elem = unsigned(vlenb) * 8; + let num_elem = VLEN; if illegal_vd_unmasked() | not(assert_vstart(0)) then { handle_illegal(); return RETIRE_FAIL }; let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs2_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vs2); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs2_val : vector('n, bool) = read_vmask(num_elem, 0b0, vs2); - (result, mask) = init_masked_result_cmp(num_elem, SEW, 0, vs2_val, vm_val); + let (_, mask) = init_masked_result_cmp(num_elem, SEW, 0, vs2_val, vm_val); - count : nat = 0; + var count : nat = 0; foreach (i from 0 to (num_elem - 1)) { if mask[i] & vs2_val[i] then count = count + 1; }; - X(rd) = to_bits(sizeof(xlen), count); + X(rd) = to_bits(xlen, count); vstart = zeros(); RETIRE_SUCCESS } @@ -125,28 +122,26 @@ mapping clause encdec = VFIRST_M(vm, vs2, rd) if extensionEnabled(Ext_V) function clause execute(VFIRST_M(vm, vs2, rd)) = { let SEW = get_sew(); let LMUL_pow = get_lmul_pow(); - let num_elem = unsigned(vlenb) * 8; + let num_elem = VLEN; if illegal_vd_unmasked() | not(assert_vstart(0)) then { handle_illegal(); return RETIRE_FAIL }; let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs2_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vs2); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs2_val : vector('n, bool) = read_vmask(num_elem, 0b0, vs2); - (result, mask) = init_masked_result_cmp(num_elem, SEW, 0, vs2_val, vm_val); + let (_, mask) = init_masked_result_cmp(num_elem, SEW, 0, vs2_val, vm_val); - index : int = -1; + var index : int = -1; foreach (i from 0 to (num_elem - 1)) { if index == -1 then { if mask[i] & vs2_val[i] then index = i; }; }; - X(rd) = to_bits(sizeof(xlen), index); + X(rd) = to_bits(xlen, index); vstart = zeros(); RETIRE_SUCCESS } @@ -163,7 +158,7 @@ mapping clause encdec = VMSBF_M(vm, vs2, vd) if extensionEnabled(Ext_V) function clause execute(VMSBF_M(vm, vs2, vd)) = { let SEW = get_sew(); let LMUL_pow = get_lmul_pow(); - let num_elem = unsigned(vlenb) * 8; + let num_elem = VLEN; if illegal_normal(vd, vm) | not(assert_vstart(0)) | vd == vs2 then { handle_illegal(); return RETIRE_FAIL }; @@ -171,15 +166,14 @@ function clause execute(VMSBF_M(vm, vs2, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs2_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vs2); - let vd_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vd); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs2_val : vector('n, bool) = read_vmask(num_elem, 0b0, vs2); + let vd_val : vector('n, bool) = read_vmask(num_elem, 0b0, vd); - (result, mask) = init_masked_result_cmp(num_elem, SEW, 0, vd_val, vm_val); + let (initial_result, mask) = init_masked_result_cmp(num_elem, SEW, 0, vd_val, vm_val); + var result = initial_result; - found_elem : bool = false; + var found_elem : bool = false; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { if vs2_val[i] then found_elem = true; @@ -204,7 +198,7 @@ mapping clause encdec = VMSIF_M(vm, vs2, vd) if extensionEnabled(Ext_V) function clause execute(VMSIF_M(vm, vs2, vd)) = { let SEW = get_sew(); let LMUL_pow = get_lmul_pow(); - let num_elem = unsigned(vlenb) * 8; + let num_elem = VLEN; if illegal_normal(vd, vm) | not(assert_vstart(0)) | vd == vs2 then { handle_illegal(); return RETIRE_FAIL }; @@ -212,15 +206,14 @@ function clause execute(VMSIF_M(vm, vs2, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs2_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vs2); - let vd_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vd); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs2_val : vector('n, bool) = read_vmask(num_elem, 0b0, vs2); + let vd_val : vector('n, bool) = read_vmask(num_elem, 0b0, vd); - (result, mask) = init_masked_result_cmp(num_elem, SEW, 0, vd_val, vm_val); + let (initial_result, mask) = init_masked_result_cmp(num_elem, SEW, 0, vd_val, vm_val); + var result = initial_result; - found_elem : bool = false; + var found_elem : bool = false; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { result[i] = if found_elem then false else true; @@ -245,7 +238,7 @@ mapping clause encdec = VMSOF_M(vm, vs2, vd) if extensionEnabled(Ext_V) function clause execute(VMSOF_M(vm, vs2, vd)) = { let SEW = get_sew(); let LMUL_pow = get_lmul_pow(); - let num_elem = unsigned(vlenb) * 8; + let num_elem = VLEN; if illegal_normal(vd, vm) | not(assert_vstart(0)) | vd == vs2 then { handle_illegal(); return RETIRE_FAIL }; @@ -253,15 +246,14 @@ function clause execute(VMSOF_M(vm, vs2, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs2_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vs2); - let vd_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vd); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs2_val : vector('n, bool) = read_vmask(num_elem, 0b0, vs2); + let vd_val : vector('n, bool) = read_vmask(num_elem, 0b0, vd); - (result, mask) = init_masked_result_cmp(num_elem, SEW, 0, vd_val, vm_val); + let (initial_result, mask) = init_masked_result_cmp(num_elem, SEW, 0, vd_val, vm_val); + var result = initial_result; - found_elem : bool = false; + var found_elem : bool = false; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { if vs2_val[i] & not(found_elem) then { @@ -298,15 +290,14 @@ function clause execute(VIOTA_M(vm, vs2, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs2_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs2_val : vector('n, bool) = read_vmask(num_elem, 0b0, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; - sum : int = 0; + var sum : int = 0; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { result[i] = to_bits(SEW, sum); @@ -338,12 +329,11 @@ function clause execute(VID_V(vm, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then result[i] = to_bits(SEW, i) diff --git a/model/riscv_insts_vext_mem.sail b/model/riscv_insts_vext_mem.sail index 9ffb56e..41c235a 100644 --- a/model/riscv_insts_vext_mem.sail +++ b/model/riscv_insts_vext_mem.sail @@ -69,10 +69,10 @@ mapping clause encdec = VLSEGTYPE(nf, vm, rs1, width, vd) if extensionEnabled(Ex val process_vlseg : forall 'f 'b 'n 'p, (0 < 'f & 'f <= 8) & ('b in {1, 2, 4, 8}) & ('n >= 0). (int('f), bits(1), regidx, int('b), regidx, int('p), int('n)) -> Retired function process_vlseg (nf, vm, vd, load_width_bytes, rs1, EMUL_pow, num_elem) = { - let EMUL_reg : int = if EMUL_pow <= 0 then 1 else int_power(2, EMUL_pow); + let EMUL_reg : int = if EMUL_pow <= 0 then 1 else 2 ^ (EMUL_pow); let width_type : word_width = size_bytes(load_width_bytes); - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_seg : vector('n, dec, bits('f * 'b * 8)) = read_vreg_seg(num_elem, load_width_bytes * 8, EMUL_pow, nf, vd); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_seg : vector('n, bits('f * 'b * 8)) = read_vreg_seg(num_elem, load_width_bytes * 8, EMUL_pow, nf, vd); let (result, mask) = init_masked_result(num_elem, nf * load_width_bytes * 8, EMUL_pow, vd_seg, vm_val); @@ -81,7 +81,7 @@ function process_vlseg (nf, vm, vd, load_width_bytes, rs1, EMUL_pow, num_elem) = vstart = to_bits(16, i); foreach (j from 0 to (nf - 1)) { let elem_offset = (i * nf + j) * load_width_bytes; - match ext_data_get_addr(rs1, to_bits(sizeof(xlen), elem_offset), Read(Data), load_width_bytes) { + match ext_data_get_addr(rs1, to_bits(xlen, elem_offset), Read(Data), load_width_bytes) { Ext_DataAddr_Error(e) => { ext_handle_data_check_error(e); return RETIRE_FAIL }, Ext_DataAddr_OK(vaddr) => if check_misaligned(vaddr, width_type) @@ -135,25 +135,25 @@ mapping clause encdec = VLSEGFFTYPE(nf, vm, rs1, width, vd) if extensionEnabled( val process_vlsegff : forall 'f 'b 'n 'p, (0 < 'f & 'f <= 8) & ('b in {1, 2, 4, 8}) & ('n >= 0). (int('f), bits(1), regidx, int('b), regidx, int('p), int('n)) -> Retired function process_vlsegff (nf, vm, vd, load_width_bytes, rs1, EMUL_pow, num_elem) = { - let EMUL_reg : int = if EMUL_pow <= 0 then 1 else int_power(2, EMUL_pow); + let EMUL_reg : int = if EMUL_pow <= 0 then 1 else 2 ^ (EMUL_pow); let width_type : word_width = size_bytes(load_width_bytes); - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_seg : vector('n, dec, bits('f * 'b * 8)) = read_vreg_seg(num_elem, load_width_bytes * 8, EMUL_pow, nf, vd); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_seg : vector('n, bits('f * 'b * 8)) = read_vreg_seg(num_elem, load_width_bytes * 8, EMUL_pow, nf, vd); let tail_ag : agtype = get_vtype_vta(); let (result, mask) = init_masked_result(num_elem, nf * load_width_bytes * 8, EMUL_pow, vd_seg, vm_val); - trimmed : bool = false; + var trimmed : bool = false; foreach (i from 0 to (num_elem - 1)) { if not(trimmed) then { - if vm_val[i] then { /* active segments */ + if mask[i] then { /* active segments */ foreach (j from 0 to (nf - 1)) { let elem_offset = (i * nf + j) * load_width_bytes; - match ext_data_get_addr(rs1, to_bits(sizeof(xlen), elem_offset), Read(Data), load_width_bytes) { + match ext_data_get_addr(rs1, to_bits(xlen, elem_offset), Read(Data), load_width_bytes) { Ext_DataAddr_Error(e) => { if i == 0 then { ext_handle_data_check_error(e); return RETIRE_FAIL } else { - vl = to_bits(sizeof(xlen), i); + vl = to_bits(xlen, i); print_reg("CSR vl <- " ^ BitStr(vl)); trimmed = true } @@ -162,7 +162,7 @@ function process_vlsegff (nf, vm, vd, load_width_bytes, rs1, EMUL_pow, num_elem) if check_misaligned(vaddr, width_type) then { if i == 0 then { handle_mem_exception(vaddr, E_Load_Addr_Align()); return RETIRE_FAIL } else { - vl = to_bits(sizeof(xlen), i); + vl = to_bits(xlen, i); print_reg("CSR vl <- " ^ BitStr(vl)); trimmed = true } @@ -170,7 +170,7 @@ function process_vlsegff (nf, vm, vd, load_width_bytes, rs1, EMUL_pow, num_elem) TR_Failure(e, _) => { if i == 0 then { handle_mem_exception(vaddr, e); return RETIRE_FAIL } else { - vl = to_bits(sizeof(xlen), i); + vl = to_bits(xlen, i); print_reg("CSR vl <- " ^ BitStr(vl)); trimmed = true } @@ -181,7 +181,7 @@ function process_vlsegff (nf, vm, vd, load_width_bytes, rs1, EMUL_pow, num_elem) MemException(e) => { if i == 0 then { handle_mem_exception(vaddr, e); return RETIRE_FAIL } else { - vl = to_bits(sizeof(xlen), i); + vl = to_bits(xlen, i); print_reg("CSR vl <- " ^ BitStr(vl)); trimmed = true } @@ -240,18 +240,18 @@ mapping clause encdec = VSSEGTYPE(nf, vm, rs1, width, vs3) if extensionEnabled(E val process_vsseg : forall 'f 'b 'n 'p, (0 < 'f & 'f <= 8) & ('b in {1, 2, 4, 8}) & ('n >= 0). (int('f), bits(1), regidx, int('b), regidx, int('p), int('n)) -> Retired function process_vsseg (nf, vm, vs3, load_width_bytes, rs1, EMUL_pow, num_elem) = { - let EMUL_reg : int = if EMUL_pow <= 0 then 1 else int_power(2, EMUL_pow); + let EMUL_reg : int = if EMUL_pow <= 0 then 1 else 2 ^ (EMUL_pow); let width_type : word_width = size_bytes(load_width_bytes); - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs3_seg : vector('n, dec, bits('f * 'b * 8)) = read_vreg_seg(num_elem, load_width_bytes * 8, EMUL_pow, nf, vs3); - let mask : vector('n, dec, bool) = init_masked_source(num_elem, EMUL_pow, vm_val); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs3_seg : vector('n, bits('f * 'b * 8)) = read_vreg_seg(num_elem, load_width_bytes * 8, EMUL_pow, nf, vs3); + let mask : vector('n, bool) = init_masked_source(num_elem, EMUL_pow, vm_val); foreach (i from 0 to (num_elem - 1)) { - if vm_val[i] then { /* active segments */ + if mask[i] then { /* active segments */ vstart = to_bits(16, i); foreach (j from 0 to (nf - 1)) { let elem_offset = (i * nf + j) * load_width_bytes; - match ext_data_get_addr(rs1, to_bits(sizeof(xlen), elem_offset), Write(Data), load_width_bytes) { + match ext_data_get_addr(rs1, to_bits(xlen, elem_offset), Write(Data), load_width_bytes) { Ext_DataAddr_Error(e) => { ext_handle_data_check_error(e); return RETIRE_FAIL }, Ext_DataAddr_OK(vaddr) => if check_misaligned(vaddr, width_type) @@ -309,11 +309,11 @@ mapping clause encdec = VLSSEGTYPE(nf, vm, rs2, rs1, width, vd) if extensionEnab val process_vlsseg : forall 'f 'b 'n 'p, (0 < 'f & 'f <= 8) & ('b in {1, 2, 4, 8}) & ('n >= 0). (int('f), bits(1), regidx, int('b), regidx, regidx, int('p), int('n)) -> Retired function process_vlsseg (nf, vm, vd, load_width_bytes, rs1, rs2, EMUL_pow, num_elem) = { - let EMUL_reg : int = if EMUL_pow <= 0 then 1 else int_power(2, EMUL_pow); + let EMUL_reg : int = if EMUL_pow <= 0 then 1 else 2 ^ (EMUL_pow); let width_type : word_width = size_bytes(load_width_bytes); - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_seg : vector('n, dec, bits('f * 'b * 8)) = read_vreg_seg(num_elem, load_width_bytes * 8, EMUL_pow, nf, vd); - let rs2_val : int = signed(get_scalar(rs2, sizeof(xlen))); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_seg : vector('n, bits('f * 'b * 8)) = read_vreg_seg(num_elem, load_width_bytes * 8, EMUL_pow, nf, vd); + let rs2_val : int = unsigned(get_scalar(rs2, xlen)); let (result, mask) = init_masked_result(num_elem, nf * load_width_bytes * 8, EMUL_pow, vd_seg, vm_val); @@ -322,7 +322,7 @@ function process_vlsseg (nf, vm, vd, load_width_bytes, rs1, rs2, EMUL_pow, num_e vstart = to_bits(16, i); foreach (j from 0 to (nf - 1)) { let elem_offset = i * rs2_val + j * load_width_bytes; - match ext_data_get_addr(rs1, to_bits(sizeof(xlen), elem_offset), Read(Data), load_width_bytes) { + match ext_data_get_addr(rs1, to_bits(xlen, elem_offset), Read(Data), load_width_bytes) { Ext_DataAddr_Error(e) => { ext_handle_data_check_error(e); return RETIRE_FAIL }, Ext_DataAddr_OK(vaddr) => if check_misaligned(vaddr, width_type) @@ -376,19 +376,19 @@ mapping clause encdec = VSSSEGTYPE(nf, vm, rs2, rs1, width, vs3) if extensionEna val process_vssseg : forall 'f 'b 'n 'p, (0 < 'f & 'f <= 8) & ('b in {1, 2, 4, 8}) & ('n >= 0). (int('f), bits(1), regidx, int('b), regidx, regidx, int('p), int('n)) -> Retired function process_vssseg (nf, vm, vs3, load_width_bytes, rs1, rs2, EMUL_pow, num_elem) = { - let EMUL_reg : int = if EMUL_pow <= 0 then 1 else int_power(2, EMUL_pow); + let EMUL_reg : int = if EMUL_pow <= 0 then 1 else 2 ^ (EMUL_pow); let width_type : word_width = size_bytes(load_width_bytes); - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs3_seg : vector('n, dec, bits('f * 'b * 8)) = read_vreg_seg(num_elem, load_width_bytes * 8, EMUL_pow, nf, vs3); - let rs2_val : int = signed(get_scalar(rs2, sizeof(xlen))); - let mask : vector('n, dec, bool) = init_masked_source(num_elem, EMUL_pow, vm_val); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs3_seg : vector('n, bits('f * 'b * 8)) = read_vreg_seg(num_elem, load_width_bytes * 8, EMUL_pow, nf, vs3); + let rs2_val : int = unsigned(get_scalar(rs2, xlen)); + let mask : vector('n, bool) = init_masked_source(num_elem, EMUL_pow, vm_val); foreach (i from 0 to (num_elem - 1)) { if mask[i] then { /* active segments */ vstart = to_bits(16, i); foreach (j from 0 to (nf - 1)) { let elem_offset = i * rs2_val + j * load_width_bytes; - match ext_data_get_addr(rs1, to_bits(sizeof(xlen), elem_offset), Write(Data), load_width_bytes) { + match ext_data_get_addr(rs1, to_bits(xlen, elem_offset), Write(Data), load_width_bytes) { Ext_DataAddr_Error(e) => { ext_handle_data_check_error(e); return RETIRE_FAIL }, Ext_DataAddr_OK(vaddr) => if check_misaligned(vaddr, width_type) @@ -446,11 +446,11 @@ mapping clause encdec = VLUXSEGTYPE(nf, vm, vs2, rs1, width, vd) if extensionEna val process_vlxseg : forall 'f 'ib 'db 'ip 'dp 'n, (0 < 'f & 'f <= 8) & ('ib in {1, 2, 4, 8}) & ('db in {1, 2, 4, 8}) & ('n >= 0). (int('f), bits(1), regidx, int('ib), int('db), int('ip), int('dp), regidx, regidx, int('n), int) -> Retired function process_vlxseg (nf, vm, vd, EEW_index_bytes, EEW_data_bytes, EMUL_index_pow, EMUL_data_pow, rs1, vs2, num_elem, mop) = { - let EMUL_data_reg : int = if EMUL_data_pow <= 0 then 1 else int_power(2, EMUL_data_pow); + let EMUL_data_reg : int = if EMUL_data_pow <= 0 then 1 else 2 ^ (EMUL_data_pow); let width_type : word_width = size_bytes(EEW_data_bytes); - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vd_seg : vector('n, dec, bits('f * 'db * 8)) = read_vreg_seg(num_elem, EEW_data_bytes * 8, EMUL_data_pow, nf, vd); - let vs2_val : vector('n, dec, bits('ib * 8)) = read_vreg(num_elem, EEW_index_bytes * 8, EMUL_index_pow, vs2); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vd_seg : vector('n, bits('f * 'db * 8)) = read_vreg_seg(num_elem, EEW_data_bytes * 8, EMUL_data_pow, nf, vd); + let vs2_val : vector('n, bits('ib * 8)) = read_vreg(num_elem, EEW_index_bytes * 8, EMUL_index_pow, vs2); let (result, mask) = init_masked_result(num_elem, nf * EEW_data_bytes * 8, EMUL_data_pow, vd_seg, vm_val); @@ -459,8 +459,8 @@ function process_vlxseg (nf, vm, vd, EEW_index_bytes, EEW_data_bytes, EMUL_index if mask[i] then { /* active segments */ vstart = to_bits(16, i); foreach (j from 0 to (nf - 1)) { - let elem_offset : int = signed(vs2_val[i]) + j * EEW_data_bytes; - match ext_data_get_addr(rs1, to_bits(sizeof(xlen), elem_offset), Read(Data), EEW_data_bytes) { + let elem_offset : int = unsigned(vs2_val[i]) + j * EEW_data_bytes; + match ext_data_get_addr(rs1, to_bits(xlen, elem_offset), Read(Data), EEW_data_bytes) { Ext_DataAddr_Error(e) => { ext_handle_data_check_error(e); return RETIRE_FAIL }, Ext_DataAddr_OK(vaddr) => if check_misaligned(vaddr, width_type) @@ -538,20 +538,20 @@ mapping clause encdec = VSUXSEGTYPE(nf, vm, vs2, rs1, width, vs3) if extensionEn val process_vsxseg : forall 'f 'ib 'db 'ip 'dp 'n, (0 < 'f & 'f <= 8) & ('ib in {1, 2, 4, 8}) & ('db in {1, 2, 4, 8}) & ('n >= 0). (int('f), bits(1), regidx, int('ib), int('db), int('ip), int('dp), regidx, regidx, int('n), int) -> Retired function process_vsxseg (nf, vm, vs3, EEW_index_bytes, EEW_data_bytes, EMUL_index_pow, EMUL_data_pow, rs1, vs2, num_elem, mop) = { - let EMUL_data_reg : int = if EMUL_data_pow <= 0 then 1 else int_power(2, EMUL_data_pow); + let EMUL_data_reg : int = if EMUL_data_pow <= 0 then 1 else 2 ^ (EMUL_data_pow); let width_type : word_width = size_bytes(EEW_data_bytes); - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs3_seg : vector('n, dec, bits('f * 'db * 8)) = read_vreg_seg(num_elem, EEW_data_bytes * 8, EMUL_data_pow, nf, vs3); - let vs2_val : vector('n, dec, bits('ib * 8)) = read_vreg(num_elem, EEW_index_bytes * 8, EMUL_index_pow, vs2); - let mask : vector('n, dec, bool) = init_masked_source(num_elem, EMUL_data_pow, vm_val); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs3_seg : vector('n, bits('f * 'db * 8)) = read_vreg_seg(num_elem, EEW_data_bytes * 8, EMUL_data_pow, nf, vs3); + let vs2_val : vector('n, bits('ib * 8)) = read_vreg(num_elem, EEW_index_bytes * 8, EMUL_index_pow, vs2); + let mask : vector('n, bool) = init_masked_source(num_elem, EMUL_data_pow, vm_val); /* currently mop = 1 (unordered) or 3 (ordered) do the same operations */ foreach (i from 0 to (num_elem - 1)) { if mask[i] then { /* active segments */ vstart = to_bits(16, i); foreach (j from 0 to (nf - 1)) { - let elem_offset : int = signed(vs2_val[i]) + j * EEW_data_bytes; - match ext_data_get_addr(rs1, to_bits(sizeof(xlen), elem_offset), Write(Data), EEW_data_bytes) { + let elem_offset : int = unsigned(vs2_val[i]) + j * EEW_data_bytes; + match ext_data_get_addr(rs1, to_bits(xlen, elem_offset), Write(Data), EEW_data_bytes) { Ext_DataAddr_Error(e) => { ext_handle_data_check_error(e); return RETIRE_FAIL }, Ext_DataAddr_OK(vaddr) => if check_misaligned(vaddr, width_type) @@ -622,7 +622,7 @@ function clause execute(VSOXSEGTYPE(nf, vm, vs2, rs1, width, vs3)) = { process_vsxseg(nf_int, vm, vs3, EEW_index_bytes, EEW_data_bytes, EMUL_index_pow, EMUL_data_pow, rs1, vs2, num_elem, 3) } -mapping clause assembly = VSUXSEGTYPE(nf, vm, vs2, rs1, width, vs3) +mapping clause assembly = VSOXSEGTYPE(nf, vm, vs2, rs1, width, vs3) <-> "vsox" ^ nfields_string(nf) ^ "ei" ^ vlewidth_bitsnumberstr(width) ^ ".v" ^ spc() ^ vreg_name(vs3) ^ sep() ^ "(" ^ reg_name(rs1) ^ ")" ^ sep() ^ reg_name(vs2) ^ maybe_vmask(vm) /* ***************** Vector Load Unit-Stride Whole Register (vm=0b1, mop=0b00, lumop=0b01000) ****************** */ @@ -637,14 +637,14 @@ function process_vlre (nf, vd, load_width_bytes, rs1, elem_per_reg) = { let start_element = get_start_element(); if start_element >= nf * elem_per_reg then return RETIRE_SUCCESS; /* no elements are written if vstart >= evl */ let elem_to_align : int = start_element % elem_per_reg; - cur_field : int = start_element / elem_per_reg; - cur_elem : int = start_element; + var cur_field : int = start_element / elem_per_reg; + var cur_elem : int = start_element; if elem_to_align > 0 then { foreach (i from elem_to_align to (elem_per_reg - 1)) { vstart = to_bits(16, cur_elem); let elem_offset = cur_elem * load_width_bytes; - match ext_data_get_addr(rs1, to_bits(sizeof(xlen), elem_offset), Read(Data), load_width_bytes) { + match ext_data_get_addr(rs1, to_bits(xlen, elem_offset), Read(Data), load_width_bytes) { Ext_DataAddr_Error(e) => { ext_handle_data_check_error(e); return RETIRE_FAIL }, Ext_DataAddr_OK(vaddr) => if check_misaligned(vaddr, width_type) @@ -668,7 +668,7 @@ function process_vlre (nf, vd, load_width_bytes, rs1, elem_per_reg) = { foreach (i from 0 to (elem_per_reg - 1)) { vstart = to_bits(16, cur_elem); let elem_offset = cur_elem * load_width_bytes; - match ext_data_get_addr(rs1, to_bits(sizeof(xlen), elem_offset), Read(Data), load_width_bytes) { + match ext_data_get_addr(rs1, to_bits(xlen, elem_offset), Read(Data), load_width_bytes) { Ext_DataAddr_Error(e) => { ext_handle_data_check_error(e); return RETIRE_FAIL }, Ext_DataAddr_OK(vaddr) => if check_misaligned(vaddr, width_type) @@ -694,7 +694,6 @@ function process_vlre (nf, vd, load_width_bytes, rs1, elem_per_reg) = { function clause execute(VLRETYPE(nf, rs1, width, vd)) = { let load_width_bytes = vlewidth_bytesnumber(width); let EEW = load_width_bytes * 8; - let VLEN = unsigned(vlenb) * 8; let elem_per_reg : int = VLEN / EEW; let nf_int = nfields_int(nf); @@ -719,14 +718,14 @@ function process_vsre (nf, load_width_bytes, rs1, vs3, elem_per_reg) = { let start_element = get_start_element(); if start_element >= nf * elem_per_reg then return RETIRE_SUCCESS; /* no elements are written if vstart >= evl */ let elem_to_align : int = start_element % elem_per_reg; - cur_field : int = start_element / elem_per_reg; - cur_elem : int = start_element; + var cur_field : int = start_element / elem_per_reg; + var cur_elem : int = start_element; if elem_to_align > 0 then { foreach (i from elem_to_align to (elem_per_reg - 1)) { vstart = to_bits(16, cur_elem); let elem_offset : int = cur_elem * load_width_bytes; - match ext_data_get_addr(rs1, to_bits(sizeof(xlen), elem_offset), Write(Data), load_width_bytes) { + match ext_data_get_addr(rs1, to_bits(xlen, elem_offset), Write(Data), load_width_bytes) { Ext_DataAddr_Error(e) => { ext_handle_data_check_error(e); return RETIRE_FAIL }, Ext_DataAddr_OK(vaddr) => if check_misaligned(vaddr, width_type) @@ -756,11 +755,11 @@ function process_vsre (nf, load_width_bytes, rs1, vs3, elem_per_reg) = { }; foreach (j from cur_field to (nf - 1)) { - let vs3_val : vector('n, dec, bits('b * 8)) = read_vreg(elem_per_reg, load_width_bytes * 8, 0, vs3 + to_bits(5, j)); + let vs3_val : vector('n, bits('b * 8)) = read_vreg(elem_per_reg, load_width_bytes * 8, 0, vs3 + to_bits(5, j)); foreach (i from 0 to (elem_per_reg - 1)) { vstart = to_bits(16, cur_elem); let elem_offset = cur_elem * load_width_bytes; - match ext_data_get_addr(rs1, to_bits(sizeof(xlen), elem_offset), Write(Data), load_width_bytes) { + match ext_data_get_addr(rs1, to_bits(xlen, elem_offset), Write(Data), load_width_bytes) { Ext_DataAddr_Error(e) => { ext_handle_data_check_error(e); return RETIRE_FAIL }, Ext_DataAddr_OK(vaddr) => if check_misaligned(vaddr, width_type) @@ -794,7 +793,6 @@ function process_vsre (nf, load_width_bytes, rs1, vs3, elem_per_reg) = { function clause execute(VSRETYPE(nf, rs1, vs3)) = { let load_width_bytes = 1; let EEW = 8; - let VLEN = unsigned(vlenb) * 8; let elem_per_reg : int = VLEN / EEW; let nf_int = nfields_int(nf); @@ -822,13 +820,13 @@ val process_vm : forall 'n 'l, ('n >= 0 & 'l >= 0). (regidx, regidx, int('n), in function process_vm(vd_or_vs3, rs1, num_elem, evl, op) = { let width_type : word_width = BYTE; let start_element = get_start_element(); - let vd_or_vs3_val : vector('n, dec, bits(8)) = read_vreg(num_elem, 8, 0, vd_or_vs3); + let vd_or_vs3_val : vector('n, bits(8)) = read_vreg(num_elem, 8, 0, vd_or_vs3); foreach (i from start_element to (num_elem - 1)) { if i < evl then { /* active elements */ vstart = to_bits(16, i); if op == VLM then { /* load */ - match ext_data_get_addr(rs1, to_bits(sizeof(xlen), i), Read(Data), 1) { + match ext_data_get_addr(rs1, to_bits(xlen, i), Read(Data), 1) { Ext_DataAddr_Error(e) => { ext_handle_data_check_error(e); return RETIRE_FAIL }, Ext_DataAddr_OK(vaddr) => if check_misaligned(vaddr, width_type) @@ -844,7 +842,7 @@ function process_vm(vd_or_vs3, rs1, num_elem, evl, op) = { } } } else if op == VSM then { /* store */ - match ext_data_get_addr(rs1, to_bits(sizeof(xlen), i), Write(Data), 1) { + match ext_data_get_addr(rs1, to_bits(xlen, i), Write(Data), 1) { Ext_DataAddr_Error(e) => { ext_handle_data_check_error(e); return RETIRE_FAIL }, Ext_DataAddr_OK(vaddr) => if check_misaligned(vaddr, width_type) diff --git a/model/riscv_insts_vext_red.sail b/model/riscv_insts_vext_red.sail index 1bd7657..67e34d2 100755 --- a/model/riscv_insts_vext_red.sail +++ b/model/riscv_insts_vext_red.sail @@ -39,12 +39,12 @@ function clause execute(RIVVTYPE(funct6, vm, vs2, vs1, vd)) = { let 'm = SEW; let 'o = SEW_widen; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem_vs, vm, 0b00000); - let vd_val : vector('d, dec, bits('o)) = read_vreg(num_elem_vd, SEW_widen, 0, vd); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem_vs, SEW, LMUL_pow, vs2); - let mask : vector('n, dec, bool) = init_masked_source(num_elem_vs, LMUL_pow, vm_val); + let vm_val : vector('n, bool) = read_vmask(num_elem_vs, vm, 0b00000); + let vd_val : vector('d, bits('o)) = read_vreg(num_elem_vd, SEW_widen, 0, vd); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem_vs, SEW, LMUL_pow, vs2); + let mask : vector('n, bool) = init_masked_source(num_elem_vs, LMUL_pow, vm_val); - sum : bits('o) = read_single_element(SEW_widen, 0, vs1); /* vs1 regardless of LMUL setting */ + var sum : bits('o) = read_single_element(SEW_widen, 0, vs1); /* vs1 regardless of LMUL setting */ foreach (i from 0 to (num_elem_vs - 1)) { if mask[i] then { let elem : bits('o) = match funct6 { @@ -101,12 +101,12 @@ function clause execute(RMVVTYPE(funct6, vm, vs2, vs1, vd)) = { let 'd = num_elem_vd; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem_vs, vm, 0b00000); - let vd_val : vector('d, dec, bits('m)) = read_vreg(num_elem_vd, SEW, 0, vd); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem_vs, SEW, LMUL_pow, vs2); - let mask : vector('n, dec, bool) = init_masked_source(num_elem_vs, LMUL_pow, vm_val); + let vm_val : vector('n, bool) = read_vmask(num_elem_vs, vm, 0b00000); + let vd_val : vector('d, bits('m)) = read_vreg(num_elem_vd, SEW, 0, vd); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem_vs, SEW, LMUL_pow, vs2); + let mask : vector('n, bool) = init_masked_source(num_elem_vs, LMUL_pow, vm_val); - sum : bits('m) = read_single_element(SEW, 0, vs1); /* vs1 regardless of LMUL setting */ + var sum : bits('m) = read_single_element(SEW, 0, vs1); /* vs1 regardless of LMUL setting */ foreach (i from 0 to (num_elem_vs - 1)) { if mask[i] then { sum = match funct6 { @@ -142,118 +142,3 @@ mapping rmvvtype_mnemonic : rmvvfunct6 <-> string = { mapping clause assembly = RMVVTYPE(funct6, vm, vs2, vs1, vd) <-> rmvvtype_mnemonic(funct6) ^ spc() ^ vreg_name(vd) ^ sep() ^ vreg_name(vs2) ^ sep() ^ vreg_name(vs1) ^ maybe_vmask(vm) - -/* ********************** OPFVV (Floating-Point Reduction) *********************** */ -union clause ast = RFVVTYPE : (rfvvfunct6, bits(1), regidx, regidx, regidx) - -mapping encdec_rfvvfunct6 : rfvvfunct6 <-> bits(6) = { - FVV_VFREDOSUM <-> 0b000011, - FVV_VFREDUSUM <-> 0b000001, - FVV_VFREDMAX <-> 0b000111, - FVV_VFREDMIN <-> 0b000101, - FVV_VFWREDOSUM <-> 0b110011, - FVV_VFWREDUSUM <-> 0b110001 -} - -mapping clause encdec = RFVVTYPE(funct6, vm, vs2, vs1, vd) if extensionEnabled(Ext_V) - <-> encdec_rfvvfunct6(funct6) @ vm @ vs2 @ vs1 @ 0b001 @ vd @ 0b1010111 if extensionEnabled(Ext_V) - -val process_rfvv_single: forall 'n 'm 'p, 'n >= 0 & 'm in {8, 16, 32, 64}. (rfvvfunct6, bits(1), regidx, regidx, regidx, int('n), int('m), int('p)) -> Retired -function process_rfvv_single(funct6, vm, vs2, vs1, vd, num_elem_vs, SEW, LMUL_pow) = { - let rm_3b = fcsr[FRM]; - let num_elem_vd = get_num_elem(0, SEW); /* vd regardless of LMUL setting */ - - if illegal_fp_reduction(SEW, rm_3b) then { handle_illegal(); return RETIRE_FAIL }; - assert(SEW != 8); - - if unsigned(vl) == 0 then return RETIRE_SUCCESS; /* if vl=0, no operation is performed */ - - let 'n = num_elem_vs; - let 'd = num_elem_vd; - let 'm = SEW; - - let vm_val : vector('n, dec, bool) = read_vmask(num_elem_vs, vm, 0b00000); - let vd_val : vector('d, dec, bits('m)) = read_vreg(num_elem_vd, SEW, 0, vd); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem_vs, SEW, LMUL_pow, vs2); - let mask : vector('n, dec, bool) = init_masked_source(num_elem_vs, LMUL_pow, vm_val); - - sum : bits('m) = read_single_element(SEW, 0, vs1); /* vs1 regardless of LMUL setting */ - foreach (i from 0 to (num_elem_vs - 1)) { - if mask[i] then { - sum = match funct6 { - /* currently ordered/unordered sum reductions do the same operations */ - FVV_VFREDOSUM => fp_add(rm_3b, sum, vs2_val[i]), - FVV_VFREDUSUM => fp_add(rm_3b, sum, vs2_val[i]), - FVV_VFREDMAX => fp_max(sum, vs2_val[i]), - FVV_VFREDMIN => fp_min(sum, vs2_val[i]), - _ => internal_error(__FILE__, __LINE__, "Widening op unexpected") - } - } - }; - - write_single_element(SEW, 0, vd, sum); - /* other elements in vd are treated as tail elements, currently remain unchanged */ - /* TODO: configuration support for agnostic behavior */ - vstart = zeros(); - RETIRE_SUCCESS -} - -val process_rfvv_widen: forall 'n 'm 'p, 'n >= 0 & 'm in {8, 16, 32, 64}. (rfvvfunct6, bits(1), regidx, regidx, regidx, int('n), int('m), int('p)) -> Retired -function process_rfvv_widen(funct6, vm, vs2, vs1, vd, num_elem_vs, SEW, LMUL_pow) = { - let rm_3b = fcsr[FRM]; - let SEW_widen = SEW * 2; - let LMUL_pow_widen = LMUL_pow + 1; - let num_elem_vd = get_num_elem(0, SEW_widen); /* vd regardless of LMUL setting */ - - if illegal_fp_reduction_widen(SEW, rm_3b, SEW_widen, LMUL_pow_widen) then { handle_illegal(); return RETIRE_FAIL }; - assert(SEW >= 16 & SEW_widen <= 64); - - if unsigned(vl) == 0 then return RETIRE_SUCCESS; /* if vl=0, no operation is performed */ - - let 'n = num_elem_vs; - let 'd = num_elem_vd; - let 'm = SEW; - let 'o = SEW_widen; - - let vm_val : vector('n, dec, bool) = read_vmask(num_elem_vs, vm, 0b00000); - let vd_val : vector('d, dec, bits('o)) = read_vreg(num_elem_vd, SEW_widen, 0, vd); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem_vs, SEW, LMUL_pow, vs2); - let mask : vector('n, dec, bool) = init_masked_source(num_elem_vs, LMUL_pow, vm_val); - - sum : bits('o) = read_single_element(SEW_widen, 0, vs1); /* vs1 regardless of LMUL setting */ - foreach (i from 0 to (num_elem_vs - 1)) { - if mask[i] then { - /* currently ordered/unordered sum reductions do the same operations */ - sum = fp_add(rm_3b, sum, fp_widen(vs2_val[i])) - } - }; - - write_single_element(SEW_widen, 0, vd, sum); - /* other elements in vd are treated as tail elements, currently remain unchanged */ - /* TODO: configuration support for agnostic behavior */ - vstart = zeros(); - RETIRE_SUCCESS -} - -function clause execute(RFVVTYPE(funct6, vm, vs2, vs1, vd)) = { - let SEW = get_sew(); - let LMUL_pow = get_lmul_pow(); - let num_elem_vs = get_num_elem(LMUL_pow, SEW); - - if funct6 == FVV_VFWREDOSUM | funct6 == FVV_VFWREDUSUM then - process_rfvv_widen(funct6, vm, vs2, vs1, vd, num_elem_vs, SEW, LMUL_pow) - else - process_rfvv_single(funct6, vm, vs2, vs1, vd, num_elem_vs, SEW, LMUL_pow) -} - -mapping rfvvtype_mnemonic : rfvvfunct6 <-> string = { - FVV_VFREDOSUM <-> "vfredosum.vs", - FVV_VFREDUSUM <-> "vfredusum.vs", - FVV_VFREDMAX <-> "vfredmax.vs", - FVV_VFREDMIN <-> "vfredmin.vs", - FVV_VFWREDOSUM <-> "vfwredosum.vs", - FVV_VFWREDUSUM <-> "vfwredusum.vs" -} - -mapping clause assembly = RFVVTYPE(funct6, vm, vs2, vs1, vd) - <-> rfvvtype_mnemonic(funct6) ^ spc() ^ vreg_name(vd) ^ sep() ^ vreg_name(vs2) ^ sep() ^ vreg_name(vs1) ^ maybe_vmask(vm) diff --git a/model/riscv_insts_vext_utils.sail b/model/riscv_insts_vext_utils.sail index 6796060..ce2f199 100755 --- a/model/riscv_insts_vext_utils.sail +++ b/model/riscv_insts_vext_utils.sail @@ -22,7 +22,7 @@ mapping maybe_vmask : string <-> bits(1) = { */ val valid_eew_emul : (int, int) -> bool function valid_eew_emul(EEW, EMUL_pow) = { - let ELEN = int_power(2, get_elen_pow()); + let ELEN = 2 ^ get_elen_pow(); EEW >= 8 & EEW <= ELEN & EMUL_pow >= -3 & EMUL_pow <= 3 } @@ -41,18 +41,6 @@ function assert_vstart(i) = { unsigned(vstart) == i } -/* Check for valid floating-point operation types - * 1. Valid element width of floating-point numbers - * 2. Valid floating-point rounding mode - */ -val valid_fp_op : ({8, 16, 32, 64}, bits(3)) -> bool -function valid_fp_op(SEW, rm_3b) = { - /* 128-bit floating-point values will be supported in future extensions */ - let valid_sew = (SEW >= 16 & SEW <= 128); - let valid_rm = not(rm_3b == 0b101 | rm_3b == 0b110 | rm_3b == 0b111); - valid_sew & valid_rm -} - /* Check for valid destination register when vector masking is enabled: * The destination vector register group for a masked vector instruction * cannot overlap the source mask register (v0), @@ -72,8 +60,8 @@ function valid_rd_mask(rd, vm) = { */ val valid_reg_overlap : (regidx, regidx, int, int) -> bool function valid_reg_overlap(rs, rd, EMUL_pow_rs, EMUL_pow_rd) = { - let rs_group = if EMUL_pow_rs > 0 then int_power(2, EMUL_pow_rs) else 1; - let rd_group = if EMUL_pow_rd > 0 then int_power(2, EMUL_pow_rd) else 1; + let rs_group = if EMUL_pow_rs > 0 then 2 ^ (EMUL_pow_rs) else 1; + let rd_group = if EMUL_pow_rd > 0 then 2 ^ (EMUL_pow_rd) else 1; let rs_int = unsigned(rs); let rd_int = unsigned(rd); if EMUL_pow_rs < EMUL_pow_rd then { @@ -90,8 +78,8 @@ function valid_reg_overlap(rs, rd, EMUL_pow_rs, EMUL_pow_rd) = { */ val valid_segment : (int, int) -> bool function valid_segment(nf, EMUL_pow) = { - if EMUL_pow < 0 then nf / int_power(2, 0 - EMUL_pow) <= 8 - else nf * int_power(2, EMUL_pow) <= 8 + if EMUL_pow < 0 then nf / (2 ^ (0 - EMUL_pow)) <= 8 + else nf * 2 ^ (EMUL_pow) <= 8 } /* ******************************************************************************* */ @@ -145,65 +133,27 @@ function illegal_reduction_widen(SEW_widen, LMUL_pow_widen) = { not(valid_vtype()) | not(assert_vstart(0)) | not(valid_eew_emul(SEW_widen, LMUL_pow_widen)) } -/* g. Normal check for floating-point instructions */ -val illegal_fp_normal : (regidx, bits(1), {8, 16, 32, 64}, bits(3)) -> bool -function illegal_fp_normal(vd, vm, SEW, rm_3b) = { - not(valid_vtype()) | not(valid_rd_mask(vd, vm)) | not(valid_fp_op(SEW, rm_3b)) -} - -/* h. Masked check for floating-point instructions encoded with vm = 0 */ -val illegal_fp_vd_masked : (regidx, {8, 16, 32, 64}, bits(3)) -> bool -function illegal_fp_vd_masked(vd, SEW, rm_3b) = { - not(valid_vtype()) | vd == 0b00000 | not(valid_fp_op(SEW, rm_3b)) -} - -/* i. Unmasked check for floating-point instructions encoded with vm = 1 */ -val illegal_fp_vd_unmasked : ({8, 16, 32, 64}, bits(3)) -> bool -function illegal_fp_vd_unmasked(SEW, rm_3b) = { - not(valid_vtype()) | not(valid_fp_op(SEW, rm_3b)) -} - -/* j. Variable width check for floating-point widening/narrowing instructions */ -val illegal_fp_variable_width : (regidx, bits(1), {8, 16, 32, 64}, bits(3), int, int) -> bool -function illegal_fp_variable_width(vd, vm, SEW, rm_3b, SEW_new, LMUL_pow_new) = { - not(valid_vtype()) | not(valid_rd_mask(vd, vm)) | not(valid_fp_op(SEW, rm_3b)) | - not(valid_eew_emul(SEW_new, LMUL_pow_new)) -} - -/* k. Normal check for floating-point reduction instructions */ -val illegal_fp_reduction : ({8, 16, 32, 64}, bits(3)) -> bool -function illegal_fp_reduction(SEW, rm_3b) = { - not(valid_vtype()) | not(assert_vstart(0)) | not(valid_fp_op(SEW, rm_3b)) -} - -/* l. Variable width check for floating-point widening reduction instructions */ -val illegal_fp_reduction_widen : ({8, 16, 32, 64}, bits(3), int, int) -> bool -function illegal_fp_reduction_widen(SEW, rm_3b, SEW_widen, LMUL_pow_widen) = { - not(valid_vtype()) | not(assert_vstart(0)) | not(valid_fp_op(SEW, rm_3b)) | - not(valid_eew_emul(SEW_widen, LMUL_pow_widen)) -} - -/* m. Non-indexed load instruction check */ +/* g. Non-indexed load instruction check */ val illegal_load : (regidx, bits(1), int, int, int) -> bool function illegal_load(vd, vm, nf, EEW, EMUL_pow) = { not(valid_vtype()) | not(valid_rd_mask(vd, vm)) | not(valid_eew_emul(EEW, EMUL_pow)) | not(valid_segment(nf, EMUL_pow)) } -/* n. Non-indexed store instruction check (with vs3 rather than vd) */ +/* h. Non-indexed store instruction check (with vs3 rather than vd) */ val illegal_store : (int, int, int) -> bool function illegal_store(nf, EEW, EMUL_pow) = { not(valid_vtype()) | not(valid_eew_emul(EEW, EMUL_pow)) | not(valid_segment(nf, EMUL_pow)) } -/* o. Indexed load instruction check */ +/* i. Indexed load instruction check */ val illegal_indexed_load : (regidx, bits(1), int, int, int, int) -> bool function illegal_indexed_load(vd, vm, nf, EEW_index, EMUL_pow_index, EMUL_pow_data) = { not(valid_vtype()) | not(valid_rd_mask(vd, vm)) | not(valid_eew_emul(EEW_index, EMUL_pow_index)) | not(valid_segment(nf, EMUL_pow_data)) } -/* p. Indexed store instruction check (with vs3 rather than vd) */ +/* j. Indexed store instruction check (with vs3 rather than vd) */ val illegal_indexed_store : (int, int, int, int) -> bool function illegal_indexed_store(nf, EEW_index, EMUL_pow_index, EMUL_pow_data) = { not(valid_vtype()) | not(valid_eew_emul(EEW_index, EMUL_pow_index)) | @@ -213,7 +163,7 @@ function illegal_indexed_store(nf, EEW_index, EMUL_pow_index, EMUL_pow_data) = { /* Scalar register shaping */ val get_scalar : forall 'm, 'm >= 8. (regidx, int('m)) -> bits('m) function get_scalar(rs1, SEW) = { - if SEW <= sizeof(xlen) then { + if SEW <= xlen then { /* Least significant SEW bits */ X(rs1)[SEW - 1 .. 0] } else { @@ -249,17 +199,17 @@ function get_end_element() = unsigned(vl) - 1 * vector2 is a "mask" vector that is true for an element if the corresponding element * in the result vector should be updated by the calling instruction */ -val init_masked_result : forall 'n 'm 'p, 'n >= 0. (int('n), int('m), int('p), vector('n, dec, bits('m)), vector('n, dec, bool)) -> (vector('n, dec, bits('m)), vector('n, dec, bool)) +val init_masked_result : forall 'n 'm 'p, 'n >= 0 & 'm >= 0. (int('n), int('m), int('p), vector('n, bits('m)), vector('n, bool)) -> (vector('n, bits('m)), vector('n, bool)) function init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val) = { let start_element = get_start_element(); let end_element = get_end_element(); let tail_ag : agtype = get_vtype_vta(); let mask_ag : agtype = get_vtype_vma(); - mask : vector('n, dec, bool) = undefined; - result : vector('n, dec, bits('m)) = undefined; + var mask : vector('n, bool) = undefined; + var result : vector('n, bits('m)) = undefined; /* Determine the actual number of elements when lmul < 1 */ - let real_num_elem = if LMUL_pow >= 0 then num_elem else num_elem / int_power(2, 0 - LMUL_pow); + let real_num_elem = if LMUL_pow >= 0 then num_elem else num_elem / (2 ^ (0 - LMUL_pow)); assert(num_elem >= real_num_elem); foreach (i from 0 to (num_elem - 1)) { @@ -302,14 +252,14 @@ function init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vm_val) = { * (vs3 for store and vs2 for reduction). There's no destination register to be masked. * In these cases, this function can be called to simply get the mask vector for vs (without the prepared vd result vector). */ -val init_masked_source : forall 'n 'p, 'n >= 0. (int('n), int('p), vector('n, dec, bool)) -> vector('n, dec, bool) +val init_masked_source : forall 'n 'p, 'n >= 0. (int('n), int('p), vector('n, bool)) -> vector('n, bool) function init_masked_source(num_elem, LMUL_pow, vm_val) = { let start_element = get_start_element(); let end_element = get_end_element(); - mask : vector('n, dec, bool) = undefined; + var mask : vector('n, bool) = undefined; /* Determine the actual number of elements when lmul < 1 */ - let real_num_elem = if LMUL_pow >= 0 then num_elem else num_elem / int_power(2, 0 - LMUL_pow); + let real_num_elem = if LMUL_pow >= 0 then num_elem else num_elem / (2 ^ (0 - LMUL_pow)); assert(num_elem >= real_num_elem); foreach (i from 0 to (num_elem - 1)) { @@ -336,15 +286,15 @@ function init_masked_source(num_elem, LMUL_pow, vm_val) = { /* Mask handling for carry functions that use masks as input/output */ /* Only prestart and tail elements are masked in a mask value */ -val init_masked_result_carry : forall 'n 'm 'p, 'n >= 0. (int('n), int('m), int('p), vector('n, dec, bool)) -> (vector('n, dec, bool), vector('n, dec, bool)) +val init_masked_result_carry : forall 'n 'm 'p, 'n >= 0. (int('n), int('m), int('p), vector('n, bool)) -> (vector('n, bool), vector('n, bool)) function init_masked_result_carry(num_elem, SEW, LMUL_pow, vd_val) = { let start_element = get_start_element(); let end_element = get_end_element(); - mask : vector('n, dec, bool) = undefined; - result : vector('n, dec, bool) = undefined; + var mask : vector('n, bool) = undefined; + var result : vector('n, bool) = undefined; /* Determine the actual number of elements when lmul < 1 */ - let real_num_elem = if LMUL_pow >= 0 then num_elem else num_elem / int_power(2, 0 - LMUL_pow); + let real_num_elem = if LMUL_pow >= 0 then num_elem else num_elem / (2 ^ (0 - LMUL_pow)); assert(num_elem >= real_num_elem); foreach (i from 0 to (num_elem - 1)) { @@ -372,16 +322,16 @@ function init_masked_result_carry(num_elem, SEW, LMUL_pow, vd_val) = { } /* Mask handling for cmp functions that use masks as output */ -val init_masked_result_cmp : forall 'n 'm 'p, 'n >= 0. (int('n), int('m), int('p), vector('n, dec, bool), vector('n, dec, bool)) -> (vector('n, dec, bool), vector('n, dec, bool)) +val init_masked_result_cmp : forall 'n 'm 'p, 'n >= 0. (int('n), int('m), int('p), vector('n, bool), vector('n, bool)) -> (vector('n, bool), vector('n, bool)) function init_masked_result_cmp(num_elem, SEW, LMUL_pow, vd_val, vm_val) = { let start_element = get_start_element(); let end_element = get_end_element(); let mask_ag : agtype = get_vtype_vma(); - mask : vector('n, dec, bool) = undefined; - result : vector('n, dec, bool) = undefined; + var mask : vector('n, bool) = undefined; + var result : vector('n, bool) = undefined; /* Determine the actual number of elements when lmul < 1 */ - let real_num_elem = if LMUL_pow >= 0 then num_elem else num_elem / int_power(2, 0 - LMUL_pow); + let real_num_elem = if LMUL_pow >= 0 then num_elem else num_elem / (2 ^ (0 - LMUL_pow)); assert(num_elem >= real_num_elem); foreach (i from 0 to (num_elem - 1)) { @@ -419,12 +369,11 @@ function init_masked_result_cmp(num_elem, SEW, LMUL_pow, vd_val, vm_val) = { * Read multiple register groups and concatenate them in parallel * The whole segments with the same element index are combined together */ -val read_vreg_seg : forall 'n 'm 'p 'q, 'n >= 0 & 'q >= 0. (int('n), int('m), int('p), int('q), regidx) -> vector('n, dec, bits('q * 'm)) +val read_vreg_seg : forall 'n 'm 'p 'q, 'n >= 0 & 'm >= 0 & 'q >= 0. (int('n), int('m), int('p), int('q), regidx) -> vector('n, bits('q * 'm)) function read_vreg_seg(num_elem, SEW, LMUL_pow, nf, vrid) = { - assert('q * 'm > 0); - let LMUL_reg : int = if LMUL_pow <= 0 then 1 else int_power(2, LMUL_pow); - vreg_list : vector('q, dec, vector('n, dec, bits('m))) = undefined; - result : vector('n, dec, bits('q * 'm)) = undefined; + let LMUL_reg : int = if LMUL_pow <= 0 then 1 else 2 ^ (LMUL_pow); + var vreg_list : vector('q, vector('n, bits('m))) = vector_init(vector_init(zeros())); + var result : vector('n, bits('q * 'm)) = vector_init(zeros()); foreach (j from 0 to (nf - 1)) { vreg_list[j] = read_vreg(num_elem, SEW, LMUL_pow, vrid + to_bits(5, j * LMUL_reg)); }; @@ -437,127 +386,6 @@ function read_vreg_seg(num_elem, SEW, LMUL_pow, nf, vrid) = { result } -/* Floating point canonical NaN for 16-bit, 32-bit and 64-bit types */ -val canonical_NaN : forall 'm, 'm in {16, 32, 64}. int('m) -> bits('m) -function canonical_NaN('m) = { - match 'm { - 16 => canonical_NaN_H(), - 32 => canonical_NaN_S(), - 64 => canonical_NaN_D() - } -} - -/* Floating point classification functions */ -val f_is_neg_inf : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool -function f_is_neg_inf(xf) = { - match 'm { - 16 => f_is_neg_inf_H(xf), - 32 => f_is_neg_inf_S(xf), - 64 => f_is_neg_inf_D(xf) - } -} - -val f_is_neg_norm : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool -function f_is_neg_norm(xf) = { - match 'm { - 16 => f_is_neg_norm_H(xf), - 32 => f_is_neg_norm_S(xf), - 64 => f_is_neg_norm_D(xf) - } -} - -val f_is_neg_subnorm : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool -function f_is_neg_subnorm(xf) = { - match 'm { - 16 => f_is_neg_subnorm_H(xf), - 32 => f_is_neg_subnorm_S(xf), - 64 => f_is_neg_subnorm_D(xf) - } -} - -val f_is_neg_zero : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool -function f_is_neg_zero(xf) = { - match 'm { - 16 => f_is_neg_zero_H(xf), - 32 => f_is_neg_zero_S(xf), - 64 => f_is_neg_zero_D(xf) - } -} - -val f_is_pos_zero : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool -function f_is_pos_zero(xf) = { - match 'm { - 16 => f_is_pos_zero_H(xf), - 32 => f_is_pos_zero_S(xf), - 64 => f_is_pos_zero_D(xf) - } -} - -val f_is_pos_subnorm : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool -function f_is_pos_subnorm(xf) = { - match 'm { - 16 => f_is_pos_subnorm_H(xf), - 32 => f_is_pos_subnorm_S(xf), - 64 => f_is_pos_subnorm_D(xf) - } -} - -val f_is_pos_norm : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool -function f_is_pos_norm(xf) = { - match 'm { - 16 => f_is_pos_norm_H(xf), - 32 => f_is_pos_norm_S(xf), - 64 => f_is_pos_norm_D(xf) - } -} - -val f_is_pos_inf : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool -function f_is_pos_inf(xf) = { - match 'm { - 16 => f_is_pos_inf_H(xf), - 32 => f_is_pos_inf_S(xf), - 64 => f_is_pos_inf_D(xf) - } -} - -val f_is_SNaN : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool -function f_is_SNaN(xf) = { - match 'm { - 16 => f_is_SNaN_H(xf), - 32 => f_is_SNaN_S(xf), - 64 => f_is_SNaN_D(xf) - } -} - -val f_is_QNaN : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool -function f_is_QNaN(xf) = { - match 'm { - 16 => f_is_QNaN_H(xf), - 32 => f_is_QNaN_S(xf), - 64 => f_is_QNaN_D(xf) - } -} - -val f_is_NaN : forall 'm, 'm in {16, 32, 64}. bits('m) -> bool -function f_is_NaN(xf) = { - match 'm { - 16 => f_is_NaN_H(xf), - 32 => f_is_NaN_S(xf), - 64 => f_is_NaN_D(xf) - } -} - -/* Scalar register shaping for floating point operations */ -val get_scalar_fp : forall 'n, 'n in {16, 32, 64}. (regidx, int('n)) -> bits('n) -function get_scalar_fp(rs1, SEW) = { - assert(sizeof(flen) >= SEW, "invalid vector floating-point type width: FLEN < SEW"); - match SEW { - 16 => F_H(rs1), - 32 => F_S(rs1), - 64 => F_D(rs1) - } -} - /* Shift amounts */ val get_shift_amount : forall 'n 'm, 0 <= 'n & 'm in {8, 16, 32, 64}. (bits('n), int('m)) -> nat function get_shift_amount(bit_val, SEW) = { @@ -571,7 +399,7 @@ val get_fixed_rounding_incr : forall ('m 'n : Int), ('m > 0 & 'n >= 0). (bits('m function get_fixed_rounding_incr(vec_elem, shift_amount) = { if shift_amount == 0 then 0b0 else { - let rounding_mode = vxrm[1 .. 0]; + let rounding_mode = vcsr[vxrm]; match rounding_mode { 0b00 => slice(vec_elem, shift_amount - 1, 1), 0b01 => bool_to_bits( @@ -587,10 +415,9 @@ function get_fixed_rounding_incr(vec_elem, shift_amount) = { val unsigned_saturation : forall ('m 'n: Int), ('n >= 'm > 1). (int('m), bits('n)) -> bits('m) function unsigned_saturation(len, elem) = { if unsigned(elem) > unsigned(ones('m)) then { - vxsat = 0b1; + vcsr[vxsat] = 0b1; ones('m) } else { - vxsat = 0b0; elem['m - 1 .. 0] } } @@ -599,504 +426,22 @@ function unsigned_saturation(len, elem) = { val signed_saturation : forall ('m 'n: Int), ('n >= 'm > 1). (int('m), bits('n)) -> bits('m) function signed_saturation(len, elem) = { if signed(elem) > signed(0b0 @ ones('m - 1)) then { - vxsat = 0b1; + vcsr[vxsat] = 0b1; 0b0 @ ones('m - 1) } else if signed(elem) < signed(0b1 @ zeros('m - 1)) then { - vxsat = 0b1; + vcsr[vxsat] = 0b1; 0b1 @ zeros('m - 1) } else { - vxsat = 0b0; elem['m - 1 .. 0] }; } -/* Get the floating point rounding mode from csr fcsr */ -val get_fp_rounding_mode : unit -> rounding_mode -function get_fp_rounding_mode() = encdec_rounding_mode(fcsr[FRM]) - -/* Negate a floating point number */ -val negate_fp : forall 'm, 'm in {16, 32, 64}. bits('m) -> bits('m) -function negate_fp(xf) = { - match 'm { - 16 => negate_H(xf), - 32 => negate_S(xf), - 64 => negate_D(xf) - } -} - -/* Floating point functions using softfloat interface */ -val fp_add: forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m)) -> bits('m) -function fp_add(rm_3b, op1, op2) = { - let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { - 16 => riscv_f16Add(rm_3b, op1, op2), - 32 => riscv_f32Add(rm_3b, op1, op2), - 64 => riscv_f64Add(rm_3b, op1, op2) - }; - accrue_fflags(fflags); - result_val -} - -val fp_sub: forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m)) -> bits('m) -function fp_sub(rm_3b, op1, op2) = { - let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { - 16 => riscv_f16Sub(rm_3b, op1, op2), - 32 => riscv_f32Sub(rm_3b, op1, op2), - 64 => riscv_f64Sub(rm_3b, op1, op2) - }; - accrue_fflags(fflags); - result_val -} - -val fp_min : forall 'm, 'm in {16, 32, 64}. (bits('m), bits('m)) -> bits('m) -function fp_min(op1, op2) = { - let (fflags, op1_lt_op2) : (bits_fflags, bool) = match 'm { - 16 => riscv_f16Lt_quiet(op1, op2), - 32 => riscv_f32Lt_quiet(op1, op2), - 64 => riscv_f64Lt_quiet(op1, op2) - }; - - let result_val = if (f_is_NaN(op1) & f_is_NaN(op2)) then canonical_NaN('m) - else if f_is_NaN(op1) then op2 - else if f_is_NaN(op2) then op1 - else if (f_is_neg_zero(op1) & f_is_pos_zero(op2)) then op1 - else if (f_is_neg_zero(op2) & f_is_pos_zero(op1)) then op2 - else if op1_lt_op2 then op1 - else op2; - accrue_fflags(fflags); - result_val -} - -val fp_max : forall 'm, 'm in {16, 32, 64}. (bits('m), bits('m)) -> bits('m) -function fp_max(op1, op2) = { - let (fflags, op1_lt_op2) : (bits_fflags, bool) = match 'm { - 16 => riscv_f16Lt_quiet(op1, op2), - 32 => riscv_f32Lt_quiet(op1, op2), - 64 => riscv_f64Lt_quiet(op1, op2) - }; - - let result_val = if (f_is_NaN(op1) & f_is_NaN(op2)) then canonical_NaN('m) - else if f_is_NaN(op1) then op2 - else if f_is_NaN(op2) then op1 - else if (f_is_neg_zero(op1) & f_is_pos_zero(op2)) then op2 - else if (f_is_neg_zero(op2) & f_is_pos_zero(op1)) then op1 - else if op1_lt_op2 then op2 - else op1; - accrue_fflags(fflags); - result_val -} - -val fp_eq : forall 'm, 'm in {16, 32, 64}. (bits('m), bits('m)) -> bool -function fp_eq(op1, op2) = { - let (fflags, result_val) : (bits_fflags, bool) = match 'm { - 16 => riscv_f16Eq(op1, op2), - 32 => riscv_f32Eq(op1, op2), - 64 => riscv_f64Eq(op1, op2) - }; - accrue_fflags(fflags); - result_val -} - -val fp_gt : forall 'm, 'm in {16, 32, 64}. (bits('m), bits('m)) -> bool -function fp_gt(op1, op2) = { - let (fflags, temp_val) : (bits_fflags, bool) = match 'm { - 16 => riscv_f16Le(op1, op2), - 32 => riscv_f32Le(op1, op2), - 64 => riscv_f64Le(op1, op2) - }; - let result_val = (if fflags == 0b10000 then false else not(temp_val)); - accrue_fflags(fflags); - result_val -} - -val fp_ge : forall 'm, 'm in {16, 32, 64}. (bits('m), bits('m)) -> bool -function fp_ge(op1, op2) = { - let (fflags, temp_val) : (bits_fflags, bool) = match 'm { - 16 => riscv_f16Lt(op1, op2), - 32 => riscv_f32Lt(op1, op2), - 64 => riscv_f64Lt(op1, op2) - }; - let result_val = (if fflags == 0b10000 then false else not(temp_val)); - accrue_fflags(fflags); - result_val -} - -val fp_lt : forall 'm, 'm in {16, 32, 64}. (bits('m), bits('m)) -> bool -function fp_lt(op1, op2) = { - let (fflags, result_val) : (bits_fflags, bool) = match 'm { - 16 => riscv_f16Lt(op1, op2), - 32 => riscv_f32Lt(op1, op2), - 64 => riscv_f64Lt(op1, op2) - }; - accrue_fflags(fflags); - result_val -} - -val fp_le : forall 'm, 'm in {16, 32, 64}. (bits('m), bits('m)) -> bool -function fp_le(op1, op2) = { - let (fflags, result_val) : (bits_fflags, bool) = match 'm { - 16 => riscv_f16Le(op1, op2), - 32 => riscv_f32Le(op1, op2), - 64 => riscv_f64Le(op1, op2) - }; - accrue_fflags(fflags); - result_val -} - -val fp_mul : forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m)) -> bits('m) -function fp_mul(rm_3b, op1, op2) = { - let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { - 16 => riscv_f16Mul(rm_3b, op1, op2), - 32 => riscv_f32Mul(rm_3b, op1, op2), - 64 => riscv_f64Mul(rm_3b, op1, op2) - }; - accrue_fflags(fflags); - result_val -} - -val fp_div : forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m)) -> bits('m) -function fp_div(rm_3b, op1, op2) = { - let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { - 16 => riscv_f16Div(rm_3b, op1, op2), - 32 => riscv_f32Div(rm_3b, op1, op2), - 64 => riscv_f64Div(rm_3b, op1, op2) - }; - accrue_fflags(fflags); - result_val -} - -val fp_muladd : forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m), bits('m)) -> bits('m) -function fp_muladd(rm_3b, op1, op2, opadd) = { - let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { - 16 => riscv_f16MulAdd(rm_3b, op1, op2, opadd), - 32 => riscv_f32MulAdd(rm_3b, op1, op2, opadd), - 64 => riscv_f64MulAdd(rm_3b, op1, op2, opadd) - }; - accrue_fflags(fflags); - result_val -} - -val fp_nmuladd : forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m), bits('m)) -> bits('m) -function fp_nmuladd(rm_3b, op1, op2, opadd) = { - let op1 = negate_fp(op1); - let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { - 16 => riscv_f16MulAdd(rm_3b, op1, op2, opadd), - 32 => riscv_f32MulAdd(rm_3b, op1, op2, opadd), - 64 => riscv_f64MulAdd(rm_3b, op1, op2, opadd) - }; - accrue_fflags(fflags); - result_val -} - -val fp_mulsub : forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m), bits('m)) -> bits('m) -function fp_mulsub(rm_3b, op1, op2, opsub) = { - let opsub = negate_fp(opsub); - let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { - 16 => riscv_f16MulAdd(rm_3b, op1, op2, opsub), - 32 => riscv_f32MulAdd(rm_3b, op1, op2, opsub), - 64 => riscv_f64MulAdd(rm_3b, op1, op2, opsub) - }; - accrue_fflags(fflags); - result_val -} - -val fp_nmulsub : forall 'm, 'm in {16, 32, 64}. (bits(3), bits('m), bits('m), bits('m)) -> bits('m) -function fp_nmulsub(rm_3b, op1, op2, opsub) = { - let opsub = negate_fp(opsub); - let op1 = negate_fp(op1); - let (fflags, result_val) : (bits_fflags, bits('m)) = match 'm { - 16 => riscv_f16MulAdd(rm_3b, op1, op2, opsub), - 32 => riscv_f32MulAdd(rm_3b, op1, op2, opsub), - 64 => riscv_f64MulAdd(rm_3b, op1, op2, opsub) - }; - accrue_fflags(fflags); - result_val -} - -val fp_class : forall 'm, 'm in {16, 32, 64}. bits('m) -> bits('m) -function fp_class(xf) = { - let result_val_10b : bits(10) = - if f_is_neg_inf(xf) then 0b_00_0000_0001 - else if f_is_neg_norm(xf) then 0b_00_0000_0010 - else if f_is_neg_subnorm(xf) then 0b_00_0000_0100 - else if f_is_neg_zero(xf) then 0b_00_0000_1000 - else if f_is_pos_zero(xf) then 0b_00_0001_0000 - else if f_is_pos_subnorm(xf) then 0b_00_0010_0000 - else if f_is_pos_norm(xf) then 0b_00_0100_0000 - else if f_is_pos_inf(xf) then 0b_00_1000_0000 - else if f_is_SNaN(xf) then 0b_01_0000_0000 - else if f_is_QNaN(xf) then 0b_10_0000_0000 - else zeros(); - - zero_extend(result_val_10b) -} - -val fp_widen : forall 'm, 'm in {16, 32}. bits('m) -> bits('m * 2) -function fp_widen(nval) = { - let rm_3b = fcsr[FRM]; - let (fflags, wval) : (bits_fflags, bits('m * 2)) = match 'm { - 16 => riscv_f16ToF32(rm_3b, nval), - 32 => riscv_f32ToF64(rm_3b, nval) - }; - accrue_fflags(fflags); - wval -} - -/* Floating point functions without softfloat support */ -val riscv_f16ToI16 : (bits_rm, bits_H) -> (bits_fflags, bits(16)) -function riscv_f16ToI16 (rm, v) = { - let (_, sig32) = riscv_f16ToI32(rm, v); - if signed(sig32) > signed(0b0 @ ones(15)) then (nvFlag(), 0b0 @ ones(15)) - else if signed(sig32) < signed(0b1 @ zeros(15)) then (nvFlag(), 0b1 @ zeros(15)) - else (zeros(5), sig32[15 .. 0]); -} - -val riscv_f16ToI8 : (bits_rm, bits_H) -> (bits_fflags, bits(8)) -function riscv_f16ToI8 (rm, v) = { - let (_, sig32) = riscv_f16ToI32(rm, v); - if signed(sig32) > signed(0b0 @ ones(7)) then (nvFlag(), 0b0 @ ones(7)) - else if signed(sig32) < signed(0b1 @ zeros(7)) then (nvFlag(), 0b1 @ zeros(7)) - else (zeros(5), sig32[7 .. 0]); -} - -val riscv_f32ToI16 : (bits_rm, bits_S) -> (bits_fflags, bits(16)) -function riscv_f32ToI16 (rm, v) = { - let (_, sig32) = riscv_f32ToI32(rm, v); - if signed(sig32) > signed(0b0 @ ones(15)) then (nvFlag(), 0b0 @ ones(15)) - else if signed(sig32) < signed(0b1 @ zeros(15)) then (nvFlag(), 0b1 @ zeros(15)) - else (zeros(5), sig32[15 .. 0]); -} - -val riscv_f16ToUi16 : (bits_rm, bits_H) -> (bits_fflags, bits(16)) -function riscv_f16ToUi16 (rm, v) = { - let (_, sig32) = riscv_f16ToUi32(rm, v); - if unsigned(sig32) > unsigned(ones(16)) then (nvFlag(), ones(16)) - else (zeros(5), sig32[15 .. 0]); -} - -val riscv_f16ToUi8 : (bits_rm, bits_H) -> (bits_fflags, bits(8)) -function riscv_f16ToUi8 (rm, v) = { - let (_, sig32) = riscv_f16ToUi32(rm, v); - if unsigned(sig32) > unsigned(ones(8)) then (nvFlag(), ones(8)) - else (zeros(5), sig32[7 .. 0]); -} - -val riscv_f32ToUi16 : (bits_rm, bits_S) -> (bits_fflags, bits(16)) -function riscv_f32ToUi16 (rm, v) = { - let (_, sig32) = riscv_f32ToUi32(rm, v); - if unsigned(sig32) > unsigned(ones(16)) then (nvFlag(), ones(16)) - else (zeros(5), sig32[15 .. 0]); -} - val count_leadingzeros : (bits(64), int) -> int function count_leadingzeros (sig, len) = { - idx : int = -1; + var idx : int = -1; assert(len == 10 | len == 23 | len == 52); foreach (i from 0 to (len - 1)) { if sig[i] == bitone then idx = i; }; len - idx - 1 } - -val rsqrt7 : forall 'm, 'm in {16, 32, 64}. (bits('m), bool) -> bits_D -function rsqrt7 (v, sub) = { - let (sig, exp, sign, e, s) : (bits(64), bits(64), bits(1), nat, nat) = match 'm { - 16 => (zero_extend(64, v[9 .. 0]), zero_extend(64, v[14 .. 10]), [v[15]], 5, 10), - 32 => (zero_extend(64, v[22 .. 0]), zero_extend(64, v[30 .. 23]), [v[31]], 8, 23), - 64 => (zero_extend(64, v[51 .. 0]), zero_extend(64, v[62 .. 52]), [v[63]], 11, 52) - }; - assert(s == 10 & e == 5 | s == 23 & e == 8 | s == 52 & e == 11); - let table : vector(128, dec, int) = [ - 52, 51, 50, 48, 47, 46, 44, 43, - 42, 41, 40, 39, 38, 36, 35, 34, - 33, 32, 31, 30, 30, 29, 28, 27, - 26, 25, 24, 23, 23, 22, 21, 20, - 19, 19, 18, 17, 16, 16, 15, 14, - 14, 13, 12, 12, 11, 10, 10, 9, - 9, 8, 7, 7, 6, 6, 5, 4, - 4, 3, 3, 2, 2, 1, 1, 0, - 127, 125, 123, 121, 119, 118, 116, 114, - 113, 111, 109, 108, 106, 105, 103, 102, - 100, 99, 97, 96, 95, 93, 92, 91, - 90, 88, 87, 86, 85, 84, 83, 82, - 80, 79, 78, 77, 76, 75, 74, 73, - 72, 71, 70, 70, 69, 68, 67, 66, - 65, 64, 63, 63, 62, 61, 60, 59, - 59, 58, 57, 56, 56, 55, 54, 53]; - - let (normalized_exp, normalized_sig) = - if sub then { - let nr_leadingzeros = count_leadingzeros(sig, s); - assert(nr_leadingzeros >= 0); - (to_bits(64, (0 - nr_leadingzeros)), zero_extend(64, sig[(s - 1) .. 0] << (1 + nr_leadingzeros))) - } else { - (exp, sig) - }; - - let idx : nat = match 'm { - 16 => unsigned([normalized_exp[0]] @ normalized_sig[9 .. 4]), - 32 => unsigned([normalized_exp[0]] @ normalized_sig[22 .. 17]), - 64 => unsigned([normalized_exp[0]] @ normalized_sig[51 .. 46]) - }; - assert(idx >= 0 & idx < 128); - let out_sig = to_bits(s, table[(127 - idx)]) << (s - 7); - let out_exp = to_bits(e, (3 * (2^(e - 1) - 1) - 1 - signed(normalized_exp)) / 2); - zero_extend(64, sign @ out_exp @ out_sig) -} - -val riscv_f16Rsqrte7 : (bits_rm, bits_H) -> (bits_fflags, bits_H) -function riscv_f16Rsqrte7 (rm, v) = { - match fp_class(v) { - 0x0001 => (nvFlag(), 0x7e00), - 0x0002 => (nvFlag(), 0x7e00), - 0x0004 => (nvFlag(), 0x7e00), - 0x0100 => (nvFlag(), 0x7e00), - 0x0200 => (zeros(5), 0x7e00), - 0x0008 => (dzFlag(), 0xfc00), - 0x0010 => (dzFlag(), 0x7c00), - 0x0080 => (zeros(5), 0x0000), - 0x0020 => (zeros(5), rsqrt7(v, true)[15 .. 0]), - _ => (zeros(5), rsqrt7(v, false)[15 .. 0]) - } -} - -val riscv_f32Rsqrte7 : (bits_rm, bits_S) -> (bits_fflags, bits_S) -function riscv_f32Rsqrte7 (rm, v) = { - match fp_class(v)[15 .. 0] { - 0x0001 => (nvFlag(), 0x7fc00000), - 0x0002 => (nvFlag(), 0x7fc00000), - 0x0004 => (nvFlag(), 0x7fc00000), - 0x0100 => (nvFlag(), 0x7fc00000), - 0x0200 => (zeros(5), 0x7fc00000), - 0x0008 => (dzFlag(), 0xff800000), - 0x0010 => (dzFlag(), 0x7f800000), - 0x0080 => (zeros(5), 0x00000000), - 0x0020 => (zeros(5), rsqrt7(v, true)[31 .. 0]), - _ => (zeros(5), rsqrt7(v, false)[31 .. 0]) - } -} - -val riscv_f64Rsqrte7 : (bits_rm, bits_D) -> (bits_fflags, bits_D) -function riscv_f64Rsqrte7 (rm, v) = { - match fp_class(v)[15 .. 0] { - 0x0001 => (nvFlag(), 0x7ff8000000000000), - 0x0002 => (nvFlag(), 0x7ff8000000000000), - 0x0004 => (nvFlag(), 0x7ff8000000000000), - 0x0100 => (nvFlag(), 0x7ff8000000000000), - 0x0200 => (zeros(5), 0x7ff8000000000000), - 0x0008 => (dzFlag(), 0xfff0000000000000), - 0x0010 => (dzFlag(), 0x7ff0000000000000), - 0x0080 => (zeros(5), zeros(64)), - 0x0020 => (zeros(5), rsqrt7(v, true)[63 .. 0]), - _ => (zeros(5), rsqrt7(v, false)[63 .. 0]) - } -} - -val recip7 : forall 'm, 'm in {16, 32, 64}. (bits('m), bits(3), bool) -> (bool, bits_D) -function recip7 (v, rm_3b, sub) = { - let (sig, exp, sign, e, s) : (bits(64), bits(64), bits(1), nat, nat) = match 'm { - 16 => (zero_extend(64, v[9 .. 0]), zero_extend(64, v[14 .. 10]), [v[15]], 5, 10), - 32 => (zero_extend(64, v[22 .. 0]), zero_extend(64, v[30 .. 23]), [v[31]], 8, 23), - 64 => (zero_extend(64, v[51 .. 0]), zero_extend(64, v[62 .. 52]), [v[63]], 11, 52) - }; - assert(s == 10 & e == 5 | s == 23 & e == 8 | s == 52 & e == 11); - let table : vector(128, dec, int) = [ - 127, 125, 123, 121, 119, 117, 116, 114, - 112, 110, 109, 107, 105, 104, 102, 100, - 99, 97, 96, 94, 93, 91, 90, 88, - 87, 85, 84, 83, 81, 80, 79, 77, - 76, 75, 74, 72, 71, 70, 69, 68, - 66, 65, 64, 63, 62, 61, 60, 59, - 58, 57, 56, 55, 54, 53, 52, 51, - 50, 49, 48, 47, 46, 45, 44, 43, - 42, 41, 40, 40, 39, 38, 37, 36, - 35, 35, 34, 33, 32, 31, 31, 30, - 29, 28, 28, 27, 26, 25, 25, 24, - 23, 23, 22, 21, 21, 20, 19, 19, - 18, 17, 17, 16, 15, 15, 14, 14, - 13, 12, 12, 11, 11, 10, 9, 9, - 8, 8, 7, 7, 6, 5, 5, 4, - 4, 3, 3, 2, 2, 1, 1, 0]; - - let nr_leadingzeros = count_leadingzeros(sig, s); - assert(nr_leadingzeros >= 0); - let (normalized_exp, normalized_sig) = - if sub then { - (to_bits(64, (0 - nr_leadingzeros)), zero_extend(64, sig[(s - 1) .. 0] << (1 + nr_leadingzeros))) - } else { - (exp, sig) - }; - - let idx : nat = match 'm { - 16 => unsigned(normalized_sig[9 .. 3]), - 32 => unsigned(normalized_sig[22 .. 16]), - 64 => unsigned(normalized_sig[51 .. 45]) - }; - assert(idx >= 0 & idx < 128); - let mid_exp = to_bits(e, 2 * (2^(e - 1) - 1) - 1 - signed(normalized_exp)); - let mid_sig = to_bits(s, table[(127 - idx)]) << (s - 7); - - let (out_exp, out_sig)= - if mid_exp == zeros(e) then { - (mid_exp, mid_sig >> 1 | 0b1 @ zeros(s - 1)) - } else if mid_exp == ones(e) then { - (zeros(e), mid_sig >> 2 | 0b01 @ zeros(s - 2)) - } else (mid_exp, mid_sig); - - if sub & nr_leadingzeros > 1 then { - if (rm_3b == 0b001 | rm_3b == 0b010 & sign == 0b0 | rm_3b == 0b011 & sign == 0b1) then { - (true, zero_extend(64, sign @ ones(e - 1) @ 0b0 @ ones(s))) - } - else (true, zero_extend(64, sign @ ones(e) @ zeros(s))) - } else (false, zero_extend(64, sign @ out_exp @ out_sig)) -} - -val riscv_f16Recip7 : (bits_rm, bits_H) -> (bits_fflags, bits_H) -function riscv_f16Recip7 (rm, v) = { - let (round_abnormal_true, res_true) = recip7(v, rm, true); - let (round_abnormal_false, res_false) = recip7(v, rm, false); - match fp_class(v) { - 0x0001 => (zeros(5), 0x8000), - 0x0080 => (zeros(5), 0x0000), - 0x0008 => (dzFlag(), 0xfc00), - 0x0010 => (dzFlag(), 0x7c00), - 0x0100 => (nvFlag(), 0x7e00), - 0x0200 => (zeros(5), 0x7e00), - 0x0004 => if round_abnormal_true then (nxFlag() | ofFlag(), res_true[15 .. 0]) else (zeros(5), res_true[15 .. 0]), - 0x0020 => if round_abnormal_true then (nxFlag() | ofFlag(), res_true[15 .. 0]) else (zeros(5), res_true[15 .. 0]), - _ => if round_abnormal_false then (nxFlag() | ofFlag(), res_false[15 .. 0]) else (zeros(5), res_false[15 .. 0]) - } -} - -val riscv_f32Recip7 : (bits_rm, bits_S) -> (bits_fflags, bits_S) -function riscv_f32Recip7 (rm, v) = { - let (round_abnormal_true, res_true) = recip7(v, rm, true); - let (round_abnormal_false, res_false) = recip7(v, rm, false); - match fp_class(v)[15 .. 0] { - 0x0001 => (zeros(5), 0x80000000), - 0x0080 => (zeros(5), 0x00000000), - 0x0008 => (dzFlag(), 0xff800000), - 0x0010 => (dzFlag(), 0x7f800000), - 0x0100 => (nvFlag(), 0x7fc00000), - 0x0200 => (zeros(5), 0x7fc00000), - 0x0004 => if round_abnormal_true then (nxFlag() | ofFlag(), res_true[31 .. 0]) else (zeros(5), res_true[31 .. 0]), - 0x0020 => if round_abnormal_true then (nxFlag() | ofFlag(), res_true[31 .. 0]) else (zeros(5), res_true[31 .. 0]), - _ => if round_abnormal_false then (nxFlag() | ofFlag(), res_false[31 .. 0]) else (zeros(5), res_false[31 .. 0]) - } -} - -val riscv_f64Recip7 : (bits_rm, bits_D) -> (bits_fflags, bits_D) -function riscv_f64Recip7 (rm, v) = { - let (round_abnormal_true, res_true) = recip7(v, rm, true); - let (round_abnormal_false, res_false) = recip7(v, rm, false); - match fp_class(v)[15 .. 0] { - 0x0001 => (zeros(5), 0x8000000000000000), - 0x0080 => (zeros(5), 0x0000000000000000), - 0x0008 => (dzFlag(), 0xfff0000000000000), - 0x0010 => (dzFlag(), 0x7ff0000000000000), - 0x0100 => (nvFlag(), 0x7ff8000000000000), - 0x0200 => (zeros(5), 0x7ff8000000000000), - 0x0004 => if round_abnormal_true then (nxFlag() | ofFlag(), res_true[63 .. 0]) else (zeros(5), res_true[63 .. 0]), - 0x0020 => if round_abnormal_true then (nxFlag() | ofFlag(), res_true[63 .. 0]) else (zeros(5), res_true[63 .. 0]), - _ => if round_abnormal_false then (nxFlag() | ofFlag(), res_false[63 .. 0]) else (zeros(5), res_false[63 .. 0]) - } -} diff --git a/model/riscv_insts_vext_vm.sail b/model/riscv_insts_vext_vm.sail index 745f53e..e6f50cf 100755 --- a/model/riscv_insts_vext_vm.sail +++ b/model/riscv_insts_vext_vm.sail @@ -8,7 +8,7 @@ /* ******************************************************************************* */ /* This file implements part of the vector extension. */ -/* Mask instructions from Chap 11 (integer arithmetic) and 13 (floating-point) */ +/* Mask instructions from Chap 11 (integer arithmetic) */ /* ******************************************************************************* */ /* ******************************* OPIVV (VVMTYPE) ******************************* */ @@ -35,14 +35,13 @@ function clause execute(VVMTYPE(funct6, vs2, vs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask_carry(num_elem, 0b0, 0b00000); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vd); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask_carry(num_elem, 0b0, 0b00000); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bool) = read_vmask(num_elem, 0b0, vd); - (result, mask) = init_masked_result_carry(num_elem, SEW, LMUL_pow, vd_val); + let (initial_result, mask) = init_masked_result_carry(num_elem, SEW, LMUL_pow, vd_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -91,13 +90,12 @@ function clause execute(VVMCTYPE(funct6, vs2, vs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vd); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bool) = read_vmask(num_elem, 0b0, vd); - (result, mask) = init_masked_result_carry(num_elem, SEW, LMUL_pow, vd_val); + let (initial_result, mask) = init_masked_result_carry(num_elem, SEW, LMUL_pow, vd_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -147,19 +145,18 @@ function clause execute(VVMSTYPE(funct6, vs2, vs1, vd)) = { let 'm = SEW; /* for bypassing normal masking in init_masked_result */ - vec_trues : vector('n, dec, bool) = undefined; + var vec_trues : vector('n, bool) = undefined; foreach (i from 0 to (num_elem - 1)) { vec_trues[i] = true }; - let vm_val : vector('n, dec, bool) = read_vmask_carry(num_elem, 0b0, 0b00000); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask_carry(num_elem, 0b0, 0b00000); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vec_trues); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vec_trues); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -209,14 +206,13 @@ function clause execute(VVCMPTYPE(funct6, vm, vs2, vs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vd); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); + let vs1_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bool) = read_vmask(num_elem, 0b0, vd); - (result, mask) = init_masked_result_cmp(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result_cmp(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -273,14 +269,13 @@ function clause execute(VXMTYPE(funct6, vs2, rs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask_carry(num_elem, 0b0, 0b00000); + let vm_val : vector('n, bool) = read_vmask_carry(num_elem, 0b0, 0b00000); let rs1_val : bits('m) = get_scalar(rs1, SEW); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vd); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bool) = read_vmask(num_elem, 0b0, vd); - (result, mask) = init_masked_result_carry(num_elem, SEW, LMUL_pow, vd_val); + let (initial_result, mask) = init_masked_result_carry(num_elem, SEW, LMUL_pow, vd_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -330,12 +325,11 @@ function clause execute(VXMCTYPE(funct6, vs2, rs1, vd)) = { let 'm = SEW; let rs1_val : bits('m) = get_scalar(rs1, SEW); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vd); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bool) = read_vmask(num_elem, 0b0, vd); - (result, mask) = init_masked_result_carry(num_elem, SEW, LMUL_pow, vd_val); + let (initial_result, mask) = init_masked_result_carry(num_elem, SEW, LMUL_pow, vd_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -385,19 +379,18 @@ function clause execute(VXMSTYPE(funct6, vs2, rs1, vd)) = { let 'm = SEW; /* for bypassing normal masking in init_masked_result */ - vec_trues : vector('n, dec, bool) = undefined; + var vec_trues : vector('n, bool) = undefined; foreach (i from 0 to (num_elem - 1)) { vec_trues[i] = true }; - let vm_val : vector('n, dec, bool) = read_vmask_carry(num_elem, 0b0, 0b00000); + let vm_val : vector('n, bool) = read_vmask_carry(num_elem, 0b0, 0b00000); let rs1_val : bits('m) = get_scalar(rs1, SEW); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vec_trues); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vec_trues); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -449,14 +442,13 @@ function clause execute(VXCMPTYPE(funct6, vm, vs2, rs1, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); let rs1_val : bits('m) = get_scalar(rs1, SEW); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vd); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bool) = read_vmask(num_elem, 0b0, vd); - (result, mask) = init_masked_result_cmp(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result_cmp(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -516,14 +508,13 @@ function clause execute(VIMTYPE(funct6, vs2, simm, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask_carry(num_elem, 0b0, 0b00000); + let vm_val : vector('n, bool) = read_vmask_carry(num_elem, 0b0, 0b00000); let imm_val : bits('m) = sign_extend(simm); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vd); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bool) = read_vmask(num_elem, 0b0, vd); - (result, mask) = init_masked_result_carry(num_elem, SEW, LMUL_pow, vd_val); + let (initial_result, mask) = init_masked_result_carry(num_elem, SEW, LMUL_pow, vd_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -570,12 +561,11 @@ function clause execute(VIMCTYPE(funct6, vs2, simm, vd)) = { let 'm = SEW; let imm_val : bits('m) = sign_extend(simm); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vd); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bool) = read_vmask(num_elem, 0b0, vd); - (result, mask) = init_masked_result_carry(num_elem, SEW, LMUL_pow, vd_val); + let (initial_result, mask) = init_masked_result_carry(num_elem, SEW, LMUL_pow, vd_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -622,19 +612,18 @@ function clause execute(VIMSTYPE(funct6, vs2, simm, vd)) = { let 'm = SEW; /* for bypassing normal masking in init_masked_result */ - vec_trues : vector('n, dec, bool) = undefined; + var vec_trues : vector('n, bool) = undefined; foreach (i from 0 to (num_elem - 1)) { vec_trues[i] = true }; - let vm_val : vector('n, dec, bool) = read_vmask_carry(num_elem, 0b0, 0b00000); + let vm_val : vector('n, bool) = read_vmask_carry(num_elem, 0b0, 0b00000); let imm_val : bits('m) = sign_extend(simm); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - result : vector('n, dec, bits('m)) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vd); - (result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vec_trues); + let (initial_result, mask) = init_masked_result(num_elem, SEW, LMUL_pow, vd_val, vec_trues); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -682,14 +671,13 @@ function clause execute(VICMPTYPE(funct6, vm, vs2, simm, vd)) = { let 'n = num_elem; let 'm = SEW; - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); + let vm_val : vector('n, bool) = read_vmask(num_elem, vm, 0b00000); let imm_val : bits('m) = sign_extend(simm); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vd); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; + let vs2_val : vector('n, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); + let vd_val : vector('n, bool) = read_vmask(num_elem, 0b0, vd); - (result, mask) = init_masked_result_cmp(num_elem, SEW, LMUL_pow, vd_val, vm_val); + let (initial_result, mask) = init_masked_result_cmp(num_elem, SEW, LMUL_pow, vd_val, vm_val); + var result = initial_result; foreach (i from 0 to (num_elem - 1)) { if mask[i] then { @@ -721,133 +709,3 @@ mapping vicmptype_mnemonic : vicmpfunct6 <-> string = { mapping clause assembly = VICMPTYPE(funct6, vm, vs2, simm, vd) <-> vicmptype_mnemonic(funct6) ^ spc() ^ vreg_name(vd) ^ sep() ^ vreg_name(vs2) ^ sep() ^ hex_bits_5(simm) ^ maybe_vmask(vm) - -/* ******************************* OPFVV (VVMTYPE) ******************************* */ -/* FVVM instructions' destination is a mask register */ -union clause ast = FVVMTYPE : (fvvmfunct6, bits(1), regidx, regidx, regidx) - -mapping encdec_fvvmfunct6 : fvvmfunct6 <-> bits(6) = { - FVVM_VMFEQ <-> 0b011000, - FVVM_VMFLE <-> 0b011001, - FVVM_VMFLT <-> 0b011011, - FVVM_VMFNE <-> 0b011100 -} - -mapping clause encdec = FVVMTYPE(funct6, vm, vs2, vs1, vd) if extensionEnabled(Ext_V) - <-> encdec_fvvmfunct6(funct6) @ vm @ vs2 @ vs1 @ 0b001 @ vd @ 0b1010111 if extensionEnabled(Ext_V) - -function clause execute(FVVMTYPE(funct6, vm, vs2, vs1, vd)) = { - let rm_3b = fcsr[FRM]; - let SEW = get_sew(); - let LMUL_pow = get_lmul_pow(); - let num_elem = get_num_elem(LMUL_pow, SEW); - - if illegal_fp_vd_unmasked(SEW, rm_3b) then { handle_illegal(); return RETIRE_FAIL }; - assert(SEW != 8); - - let 'n = num_elem; - let 'm = SEW; - - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let vs1_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs1); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vd); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; - - (result, mask) = init_masked_result_cmp(num_elem, SEW, LMUL_pow, vd_val, vm_val); - - foreach (i from 0 to (num_elem - 1)) { - if mask[i] then { - let res : bool = match funct6 { - FVVM_VMFEQ => fp_eq(vs2_val[i], vs1_val[i]), - FVVM_VMFNE => ~(fp_eq(vs2_val[i], vs1_val[i])), - FVVM_VMFLE => fp_le(vs2_val[i], vs1_val[i]), - FVVM_VMFLT => fp_lt(vs2_val[i], vs1_val[i]) - }; - result[i] = res - } - }; - - write_vmask(num_elem, vd, result); - vstart = zeros(); - RETIRE_SUCCESS -} - -mapping fvvmtype_mnemonic : fvvmfunct6 <-> string = { - FVVM_VMFEQ <-> "vmfeq.vv", - FVVM_VMFLE <-> "vmfle.vv", - FVVM_VMFLT <-> "vmflt.vv", - FVVM_VMFNE <-> "vmfne.vv" -} - -mapping clause assembly = FVVMTYPE(funct6, vm, vs2, vs1, vd) - <-> fvvmtype_mnemonic(funct6) ^ spc() ^ vreg_name(vd) ^ sep() ^ vreg_name(vs2) ^ sep() ^ vreg_name(vs1) ^ maybe_vmask(vm) - -/* ******************************* OPFVF (VFMTYPE) ******************************* */ -/* VFM instructions' destination is a mask register */ -union clause ast = FVFMTYPE : (fvfmfunct6, bits(1), regidx, regidx, regidx) - -mapping encdec_fvfmfunct6 : fvfmfunct6 <-> bits(6) = { - VFM_VMFEQ <-> 0b011000, - VFM_VMFLE <-> 0b011001, - VFM_VMFLT <-> 0b011011, - VFM_VMFNE <-> 0b011100, - VFM_VMFGT <-> 0b011101, - VFM_VMFGE <-> 0b011111 -} - -mapping clause encdec = FVFMTYPE(funct6, vm, vs2, rs1, vd) if extensionEnabled(Ext_V) - <-> encdec_fvfmfunct6(funct6) @ vm @ vs2 @ rs1 @ 0b101 @ vd @ 0b1010111 if extensionEnabled(Ext_V) - -function clause execute(FVFMTYPE(funct6, vm, vs2, rs1, vd)) = { - let rm_3b = fcsr[FRM]; - let SEW = get_sew(); - let LMUL_pow = get_lmul_pow(); - let num_elem = get_num_elem(LMUL_pow, SEW); - - if illegal_fp_vd_unmasked(SEW, rm_3b) then { handle_illegal(); return RETIRE_FAIL }; - assert(SEW != 8); - - let 'n = num_elem; - let 'm = SEW; - - let vm_val : vector('n, dec, bool) = read_vmask(num_elem, vm, 0b00000); - let rs1_val : bits('m) = get_scalar_fp(rs1, 'm); - let vs2_val : vector('n, dec, bits('m)) = read_vreg(num_elem, SEW, LMUL_pow, vs2); - let vd_val : vector('n, dec, bool) = read_vmask(num_elem, 0b0, vd); - result : vector('n, dec, bool) = undefined; - mask : vector('n, dec, bool) = undefined; - - (result, mask) = init_masked_result_cmp(num_elem, SEW, LMUL_pow, vd_val, vm_val); - - foreach (i from 0 to (num_elem - 1)) { - if mask[i] then { - let res : bool = match funct6 { - VFM_VMFEQ => fp_eq(vs2_val[i], rs1_val), - VFM_VMFNE => ~(fp_eq(vs2_val[i], rs1_val)), - VFM_VMFLE => fp_le(vs2_val[i], rs1_val), - VFM_VMFLT => fp_lt(vs2_val[i], rs1_val), - VFM_VMFGE => fp_ge(vs2_val[i], rs1_val), - VFM_VMFGT => fp_gt(vs2_val[i], rs1_val) - }; - result[i] = res - } - }; - - write_vmask(num_elem, vd, result); - vstart = zeros(); - RETIRE_SUCCESS -} - -mapping fvfmtype_mnemonic : fvfmfunct6 <-> string = { - VFM_VMFEQ <-> "vmfeq.vf", - VFM_VMFLE <-> "vmfle.vf", - VFM_VMFLT <-> "vmflt.vf", - VFM_VMFNE <-> "vmfne.vf", - VFM_VMFGT <-> "vmfgt.vf", - VFM_VMFGE <-> "vmfge.vf" -} - -mapping clause assembly = FVFMTYPE(funct6, vm, vs2, rs1, vd) - <-> fvfmtype_mnemonic(funct6) ^ spc() ^ vreg_name(vd) ^ sep() ^ vreg_name(vs2) ^ sep() ^ reg_name(rs1) ^ maybe_vmask(vm) diff --git a/model/riscv_insts_vext_vset.sail b/model/riscv_insts_vext_vset.sail index 16adf28..9cbed51 100644 --- a/model/riscv_insts_vext_vset.sail +++ b/model/riscv_insts_vext_vset.sail @@ -49,7 +49,7 @@ function handle_illegal_vtype() = { /* Note: Implementations can set vill or trap if the vtype setting is not supported. * TODO: configuration support for both solutions */ - vtype.bits = 0b1 @ zeros(sizeof(xlen) - 1); /* set vtype.vill */ + vtype.bits = 0b1 @ zeros(xlen - 1); /* set vtype.vill */ vl = zeros(); print_reg("CSR vtype <- " ^ BitStr(vtype.bits)); print_reg("CSR vl <- " ^ BitStr(vl)) @@ -60,9 +60,9 @@ function calculate_new_vl(AVL, VLMAX) = { /* Note: ceil(AVL / 2) ≤ vl ≤ VLMAX when VLMAX < AVL < (2 * VLMAX) * TODO: configuration support for either using ceil(AVL / 2) or VLMAX */ - if AVL <= VLMAX then to_bits(sizeof(xlen), AVL) - else if AVL < 2 * VLMAX then to_bits(sizeof(xlen), (AVL + 1) / 2) - else to_bits(sizeof(xlen), VLMAX) + if AVL <= VLMAX then to_bits(xlen, AVL) + else if AVL < 2 * VLMAX then to_bits(xlen, (AVL + 1) / 2) + else to_bits(xlen, VLMAX) } /* *********************************** vsetvli *********************************** */ @@ -77,7 +77,7 @@ function clause execute VSETVLI(ma, ta, sew, lmul, rs1, rd) = { let ratio_pow_ori = SEW_pow_ori - LMUL_pow_ori; /* set vtype */ - vtype.bits = 0b0 @ zeros(sizeof(xlen) - 9) @ ma @ ta @ sew @ lmul; + vtype.bits = 0b0 @ zeros(xlen - 9) @ ma @ ta @ sew @ lmul; /* check new SEW and LMUL are legal and calculate VLMAX */ let VLEN_pow = get_vlen_pow(); @@ -85,7 +85,7 @@ function clause execute VSETVLI(ma, ta, sew, lmul, rs1, rd) = { let LMUL_pow_new = get_lmul_pow(); let SEW_pow_new = get_sew_pow(); if SEW_pow_new > (LMUL_pow_new + ELEN_pow) then { handle_illegal_vtype(); return RETIRE_SUCCESS }; - let VLMAX = int_power(2, VLEN_pow + LMUL_pow_new - SEW_pow_new); + let VLMAX = 2 ^ (VLEN_pow + LMUL_pow_new - SEW_pow_new); /* set vl according to VLMAX and AVL */ if (rs1 != 0b00000) then { /* normal stripmining */ @@ -94,8 +94,8 @@ function clause execute VSETVLI(ma, ta, sew, lmul, rs1, rd) = { vl = calculate_new_vl(AVL, VLMAX); X(rd) = vl; } else if (rd != 0b00000) then { /* set vl to VLMAX */ - let AVL = unsigned(ones(sizeof(xlen))); - vl = to_bits(sizeof(xlen), VLMAX); + let AVL = unsigned(ones(xlen)); + vl = to_bits(xlen, VLMAX); X(rd) = vl; } else { /* keep existing vl */ let AVL = unsigned(vl); @@ -136,7 +136,7 @@ function clause execute VSETVL(rs2, rs1, rd) = { let LMUL_pow_new = get_lmul_pow(); let SEW_pow_new = get_sew_pow(); if SEW_pow_new > (LMUL_pow_new + ELEN_pow) then { handle_illegal_vtype(); return RETIRE_SUCCESS }; - let VLMAX = int_power(2, VLEN_pow + LMUL_pow_new - SEW_pow_new); + let VLMAX = 2 ^ (VLEN_pow + LMUL_pow_new - SEW_pow_new); /* set vl according to VLMAX and AVL */ if (rs1 != 0b00000) then { /* normal stripmining */ @@ -145,8 +145,8 @@ function clause execute VSETVL(rs2, rs1, rd) = { vl = calculate_new_vl(AVL, VLMAX); X(rd) = vl; } else if (rd != 0b00000) then { /* set vl to VLMAX */ - let AVL = unsigned(ones(sizeof(xlen))); - vl = to_bits(sizeof(xlen), VLMAX); + let AVL = unsigned(ones(xlen)); + vl = to_bits(xlen, VLMAX); X(rd) = vl; } else { /* keep existing vl */ let AVL = unsigned(vl); @@ -175,7 +175,7 @@ mapping clause encdec = VSETIVLI(ma, ta, sew, lmul, uimm, rd) if extensionEnable function clause execute VSETIVLI(ma, ta, sew, lmul, uimm, rd) = { /* set vtype */ - vtype.bits = 0b0 @ zeros(sizeof(xlen) - 9) @ ma @ ta @ sew @ lmul; + vtype.bits = 0b0 @ zeros(xlen - 9) @ ma @ ta @ sew @ lmul; /* check new SEW and LMUL are legal and calculate VLMAX */ let VLEN_pow = get_vlen_pow(); @@ -183,7 +183,7 @@ function clause execute VSETIVLI(ma, ta, sew, lmul, uimm, rd) = { let LMUL_pow_new = get_lmul_pow(); let SEW_pow_new = get_sew_pow(); if SEW_pow_new > (LMUL_pow_new + ELEN_pow) then { handle_illegal_vtype(); return RETIRE_SUCCESS }; - let VLMAX = int_power(2, VLEN_pow + LMUL_pow_new - SEW_pow_new); + let VLMAX = 2 ^ (VLEN_pow + LMUL_pow_new - SEW_pow_new); /* set vl according to VLMAX and AVL */ let AVL = unsigned(uimm); /* AVL is encoded as 5-bit zero-extended imm in the rs1 field */ diff --git a/model/riscv_insts_zba.sail b/model/riscv_insts_zba.sail index 21dd026..bef115c 100644 --- a/model/riscv_insts_zba.sail +++ b/model/riscv_insts_zba.sail @@ -15,8 +15,8 @@ function clause extensionEnabled(Ext_Zba) = true | extensionEnabled(Ext_B) /* ****************************************************************** */ union clause ast = RISCV_SLLIUW : (bits(6), regidx, regidx) -mapping clause encdec = RISCV_SLLIUW(shamt, rs1, rd) if extensionEnabled(Ext_Zba) & sizeof(xlen) == 64 - <-> 0b000010 @ shamt @ rs1 @ 0b001 @ rd @ 0b0011011 if extensionEnabled(Ext_Zba) & sizeof(xlen) == 64 +mapping clause encdec = RISCV_SLLIUW(shamt, rs1, rd) if extensionEnabled(Ext_Zba) & xlen == 64 + <-> 0b000010 @ shamt @ rs1 @ 0b001 @ rd @ 0b0011011 if extensionEnabled(Ext_Zba) & xlen == 64 mapping clause assembly = RISCV_SLLIUW(shamt, rs1, rd) <-> "slli.uw" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ hex_bits_6(shamt) @@ -31,17 +31,17 @@ function clause execute (RISCV_SLLIUW(shamt, rs1, rd)) = { /* ****************************************************************** */ union clause ast = ZBA_RTYPEUW : (regidx, regidx, regidx, bropw_zba) -mapping clause encdec = ZBA_RTYPEUW(rs2, rs1, rd, RISCV_ADDUW) if extensionEnabled(Ext_Zba) & sizeof(xlen) == 64 - <-> 0b0000100 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0111011 if extensionEnabled(Ext_Zba) & sizeof(xlen) == 64 +mapping clause encdec = ZBA_RTYPEUW(rs2, rs1, rd, RISCV_ADDUW) if extensionEnabled(Ext_Zba) & xlen == 64 + <-> 0b0000100 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0111011 if extensionEnabled(Ext_Zba) & xlen == 64 -mapping clause encdec = ZBA_RTYPEUW(rs2, rs1, rd, RISCV_SH1ADDUW) if extensionEnabled(Ext_Zba) & sizeof(xlen) == 64 - <-> 0b0010000 @ rs2 @ rs1 @ 0b010 @ rd @ 0b0111011 if extensionEnabled(Ext_Zba) & sizeof(xlen) == 64 +mapping clause encdec = ZBA_RTYPEUW(rs2, rs1, rd, RISCV_SH1ADDUW) if extensionEnabled(Ext_Zba) & xlen == 64 + <-> 0b0010000 @ rs2 @ rs1 @ 0b010 @ rd @ 0b0111011 if extensionEnabled(Ext_Zba) & xlen == 64 -mapping clause encdec = ZBA_RTYPEUW(rs2, rs1, rd, RISCV_SH2ADDUW) if extensionEnabled(Ext_Zba) & sizeof(xlen) == 64 - <-> 0b0010000 @ rs2 @ rs1 @ 0b100 @ rd @ 0b0111011 if extensionEnabled(Ext_Zba) & sizeof(xlen) == 64 +mapping clause encdec = ZBA_RTYPEUW(rs2, rs1, rd, RISCV_SH2ADDUW) if extensionEnabled(Ext_Zba) & xlen == 64 + <-> 0b0010000 @ rs2 @ rs1 @ 0b100 @ rd @ 0b0111011 if extensionEnabled(Ext_Zba) & xlen == 64 -mapping clause encdec = ZBA_RTYPEUW(rs2, rs1, rd, RISCV_SH3ADDUW) if extensionEnabled(Ext_Zba) & sizeof(xlen) == 64 - <-> 0b0010000 @ rs2 @ rs1 @ 0b110 @ rd @ 0b0111011 if extensionEnabled(Ext_Zba) & sizeof(xlen) == 64 +mapping clause encdec = ZBA_RTYPEUW(rs2, rs1, rd, RISCV_SH3ADDUW) if extensionEnabled(Ext_Zba) & xlen == 64 + <-> 0b0010000 @ rs2 @ rs1 @ 0b110 @ rd @ 0b0111011 if extensionEnabled(Ext_Zba) & xlen == 64 mapping zba_rtypeuw_mnemonic : bropw_zba <-> string = { RISCV_ADDUW <-> "add.uw", diff --git a/model/riscv_insts_zbb.sail b/model/riscv_insts_zbb.sail index 696619d..5a62ba2 100644 --- a/model/riscv_insts_zbb.sail +++ b/model/riscv_insts_zbb.sail @@ -15,8 +15,8 @@ function clause extensionEnabled(Ext_Zbkb) = true /* ****************************************************************** */ union clause ast = RISCV_RORIW : (bits(5), regidx, regidx) -mapping clause encdec = RISCV_RORIW(shamt, rs1, rd) if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & sizeof(xlen) == 64 - <-> 0b0110000 @ shamt @ rs1 @ 0b101 @ rd @ 0b0011011 if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & sizeof(xlen) == 64 +mapping clause encdec = RISCV_RORIW(shamt, rs1, rd) if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & xlen == 64 + <-> 0b0110000 @ shamt @ rs1 @ 0b101 @ rd @ 0b0011011 if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & xlen == 64 mapping clause assembly = RISCV_RORIW(shamt, rs1, rd) <-> "roriw" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ hex_bits_5(shamt) @@ -31,15 +31,15 @@ function clause execute (RISCV_RORIW(shamt, rs1, rd)) = { /* ****************************************************************** */ union clause ast = RISCV_RORI : (bits(6), regidx, regidx) -mapping clause encdec = RISCV_RORI(shamt, rs1, rd) if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & (sizeof(xlen) == 64 | shamt[5] == bitzero) - <-> 0b011000 @ shamt @ rs1 @ 0b101 @ rd @ 0b0010011 if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & (sizeof(xlen) == 64 | shamt[5] == bitzero) +mapping clause encdec = RISCV_RORI(shamt, rs1, rd) if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & (xlen == 64 | shamt[5] == bitzero) + <-> 0b011000 @ shamt @ rs1 @ 0b101 @ rd @ 0b0010011 if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & (xlen == 64 | shamt[5] == bitzero) mapping clause assembly = RISCV_RORI(shamt, rs1, rd) <-> "rori" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ hex_bits_6(shamt) function clause execute (RISCV_RORI(shamt, rs1, rd)) = { let rs1_val = X(rs1); - let result : xlenbits = if sizeof(xlen) == 32 + let result : xlenbits = if xlen == 32 then rs1_val >>> shamt[4..0] else rs1_val >>> shamt; X(rd) = result; @@ -49,11 +49,11 @@ function clause execute (RISCV_RORI(shamt, rs1, rd)) = { /* ****************************************************************** */ union clause ast = ZBB_RTYPEW : (regidx, regidx, regidx, bropw_zbb) -mapping clause encdec = ZBB_RTYPEW(rs2, rs1, rd, RISCV_ROLW) if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & sizeof(xlen) == 64 - <-> 0b0110000 @ rs2 @ rs1 @ 0b001 @ rd @ 0b0111011 if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & sizeof(xlen) == 64 +mapping clause encdec = ZBB_RTYPEW(rs2, rs1, rd, RISCV_ROLW) if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & xlen == 64 + <-> 0b0110000 @ rs2 @ rs1 @ 0b001 @ rd @ 0b0111011 if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & xlen == 64 -mapping clause encdec = ZBB_RTYPEW(rs2, rs1, rd, RISCV_RORW) if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & sizeof(xlen) == 64 - <-> 0b0110000 @ rs2 @ rs1 @ 0b101 @ rd @ 0b0111011 if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & sizeof(xlen) == 64 +mapping clause encdec = ZBB_RTYPEW(rs2, rs1, rd, RISCV_RORW) if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & xlen == 64 + <-> 0b0110000 @ rs2 @ rs1 @ 0b101 @ rd @ 0b0111011 if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & xlen == 64 mapping zbb_rtypew_mnemonic : bropw_zbb <-> string = { RISCV_ROLW <-> "rolw", @@ -126,14 +126,14 @@ function clause execute (ZBB_RTYPE(rs2, rs1, rd, op)) = { RISCV_ANDN => rs1_val & ~(rs2_val), RISCV_ORN => rs1_val | ~(rs2_val), RISCV_XNOR => ~(rs1_val ^ rs2_val), - RISCV_MAX => to_bits(sizeof(xlen), max(signed(rs1_val), signed(rs2_val))), - RISCV_MAXU => to_bits(sizeof(xlen), max(unsigned(rs1_val), unsigned(rs2_val))), - RISCV_MIN => to_bits(sizeof(xlen), min(signed(rs1_val), signed(rs2_val))), - RISCV_MINU => to_bits(sizeof(xlen), min(unsigned(rs1_val), unsigned(rs2_val))), - RISCV_ROL => if sizeof(xlen) == 32 + RISCV_MAX => to_bits(xlen, max(signed(rs1_val), signed(rs2_val))), + RISCV_MAXU => to_bits(xlen, max(unsigned(rs1_val), unsigned(rs2_val))), + RISCV_MIN => to_bits(xlen, min(signed(rs1_val), signed(rs2_val))), + RISCV_MINU => to_bits(xlen, min(unsigned(rs1_val), unsigned(rs2_val))), + RISCV_ROL => if xlen == 32 then rs1_val <<< rs2_val[4..0] else rs1_val <<< rs2_val[5..0], - RISCV_ROR => if sizeof(xlen) == 32 + RISCV_ROR => if xlen == 32 then rs1_val >>> rs2_val[4..0] else rs1_val >>> rs2_val[5..0] }; @@ -150,11 +150,11 @@ mapping clause encdec = ZBB_EXTOP(rs1, rd, RISCV_SEXTB) if extensionEnabled(Ext_ mapping clause encdec = ZBB_EXTOP(rs1, rd, RISCV_SEXTH) if extensionEnabled(Ext_Zbb) <-> 0b0110000 @ 0b00101 @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zbb) -mapping clause encdec = ZBB_EXTOP(rs1, rd, RISCV_ZEXTH) if extensionEnabled(Ext_Zbb) & sizeof(xlen) == 32 - <-> 0b0000100 @ 0b00000 @ rs1 @ 0b100 @ rd @ 0b0110011 if extensionEnabled(Ext_Zbb) & sizeof(xlen) == 32 +mapping clause encdec = ZBB_EXTOP(rs1, rd, RISCV_ZEXTH) if extensionEnabled(Ext_Zbb) & xlen == 32 + <-> 0b0000100 @ 0b00000 @ rs1 @ 0b100 @ rd @ 0b0110011 if extensionEnabled(Ext_Zbb) & xlen == 32 -mapping clause encdec = ZBB_EXTOP(rs1, rd, RISCV_ZEXTH) if extensionEnabled(Ext_Zbb) & sizeof(xlen) == 64 - <-> 0b0000100 @ 0b00000 @ rs1 @ 0b100 @ rd @ 0b0111011 if extensionEnabled(Ext_Zbb) & sizeof(xlen) == 64 +mapping clause encdec = ZBB_EXTOP(rs1, rd, RISCV_ZEXTH) if extensionEnabled(Ext_Zbb) & xlen == 64 + <-> 0b0000100 @ 0b00000 @ rs1 @ 0b100 @ rd @ 0b0111011 if extensionEnabled(Ext_Zbb) & xlen == 64 mapping zbb_extop_mnemonic : extop_zbb <-> string = { RISCV_SEXTB <-> "sext.b", @@ -179,11 +179,11 @@ function clause execute (ZBB_EXTOP(rs1, rd, op)) = { /* ****************************************************************** */ union clause ast = RISCV_REV8 : (regidx, regidx) -mapping clause encdec = RISCV_REV8(rs1, rd) if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & sizeof(xlen) == 32 - <-> 0b011010011000 @ rs1 @ 0b101 @ rd @ 0b0010011 if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & sizeof(xlen) == 32 +mapping clause encdec = RISCV_REV8(rs1, rd) if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & xlen == 32 + <-> 0b011010011000 @ rs1 @ 0b101 @ rd @ 0b0010011 if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & xlen == 32 -mapping clause encdec = RISCV_REV8(rs1, rd) if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & sizeof(xlen) == 64 - <-> 0b011010111000 @ rs1 @ 0b101 @ rd @ 0b0010011 if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & sizeof(xlen) == 64 +mapping clause encdec = RISCV_REV8(rs1, rd) if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & xlen == 64 + <-> 0b011010111000 @ rs1 @ 0b101 @ rd @ 0b0010011 if (extensionEnabled(Ext_Zbb) | extensionEnabled(Ext_Zbkb)) & xlen == 64 mapping clause assembly = RISCV_REV8(rs1, rd) <-> "rev8" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) @@ -191,8 +191,8 @@ mapping clause assembly = RISCV_REV8(rs1, rd) function clause execute (RISCV_REV8(rs1, rd)) = { let rs1_val = X(rs1); var result : xlenbits = zeros(); - foreach (i from 0 to (sizeof(xlen) - 8) by 8) - result[(i + 7) .. i] = rs1_val[(sizeof(xlen) - i - 1) .. (sizeof(xlen) - i - 8)]; + foreach (i from 0 to (xlen - 8) by 8) + result[(i + 7) .. i] = rs1_val[(xlen - i - 1) .. (xlen - i - 8)]; X(rd) = result; RETIRE_SUCCESS } @@ -209,7 +209,7 @@ mapping clause assembly = RISCV_ORCB(rs1, rd) function clause execute (RISCV_ORCB(rs1, rd)) = { let rs1_val = X(rs1); var result : xlenbits = zeros(); - foreach (i from 0 to (sizeof(xlen) - 8) by 8) + foreach (i from 0 to (xlen - 8) by 8) result[(i + 7) .. i] = if rs1_val[(i + 7) .. i] == zeros() then 0x00 else 0xFF; @@ -231,15 +231,15 @@ function clause execute (RISCV_CPOP(rs1, rd)) = { var result : nat = 0; foreach (i from 0 to (xlen_val - 1)) if rs1_val[i] == bitone then result = result + 1; - X(rd) = to_bits(sizeof(xlen), result); + X(rd) = to_bits(xlen, result); RETIRE_SUCCESS } /* ****************************************************************** */ union clause ast = RISCV_CPOPW : (regidx, regidx) -mapping clause encdec = RISCV_CPOPW(rs1, rd) if extensionEnabled(Ext_Zbb) & sizeof(xlen) == 64 - <-> 0b011000000010 @ rs1 @ 0b001 @ rd @ 0b0011011 if extensionEnabled(Ext_Zbb) & sizeof(xlen) == 64 +mapping clause encdec = RISCV_CPOPW(rs1, rd) if extensionEnabled(Ext_Zbb) & xlen == 64 + <-> 0b011000000010 @ rs1 @ 0b001 @ rd @ 0b0011011 if extensionEnabled(Ext_Zbb) & xlen == 64 mapping clause assembly = RISCV_CPOPW(rs1, rd) <-> "cpopw" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) @@ -249,7 +249,7 @@ function clause execute (RISCV_CPOPW(rs1, rd)) = { var result : nat = 0; foreach (i from 0 to 31) if rs1_val[i] == bitone then result = result + 1; - X(rd) = to_bits(sizeof(xlen), result); + X(rd) = to_bits(xlen, result); RETIRE_SUCCESS } @@ -266,19 +266,19 @@ function clause execute (RISCV_CLZ(rs1, rd)) = { let rs1_val = X(rs1); var result : nat = 0; var done : bool = false; - foreach (i from (sizeof(xlen) - 1) downto 0) + foreach (i from (xlen - 1) downto 0) if not(done) then if rs1_val[i] == bitzero then result = result + 1 else done = true; - X(rd) = to_bits(sizeof(xlen), result); + X(rd) = to_bits(xlen, result); RETIRE_SUCCESS } /* ****************************************************************** */ union clause ast = RISCV_CLZW : (regidx, regidx) -mapping clause encdec = RISCV_CLZW(rs1, rd) if extensionEnabled(Ext_Zbb) & sizeof(xlen) == 64 - <-> 0b011000000000 @ rs1 @ 0b001 @ rd @ 0b0011011 if extensionEnabled(Ext_Zbb) & sizeof(xlen) == 64 +mapping clause encdec = RISCV_CLZW(rs1, rd) if extensionEnabled(Ext_Zbb) & xlen == 64 + <-> 0b011000000000 @ rs1 @ 0b001 @ rd @ 0b0011011 if extensionEnabled(Ext_Zbb) & xlen == 64 mapping clause assembly = RISCV_CLZW(rs1, rd) <-> "clzw" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) @@ -291,7 +291,7 @@ function clause execute (RISCV_CLZW(rs1, rd)) = { if not(done) then if rs1_val[i] == bitzero then result = result + 1 else done = true; - X(rd) = to_bits(sizeof(xlen), result); + X(rd) = to_bits(xlen, result); RETIRE_SUCCESS } @@ -308,19 +308,19 @@ function clause execute (RISCV_CTZ(rs1, rd)) = { let rs1_val = X(rs1); var result : nat = 0; var done : bool = false; - foreach (i from 0 to (sizeof(xlen) - 1)) + foreach (i from 0 to (xlen - 1)) if not(done) then if rs1_val[i] == bitzero then result = result + 1 else done = true; - X(rd) = to_bits(sizeof(xlen), result); + X(rd) = to_bits(xlen, result); RETIRE_SUCCESS } /* ****************************************************************** */ union clause ast = RISCV_CTZW : (regidx, regidx) -mapping clause encdec = RISCV_CTZW(rs1, rd) if extensionEnabled(Ext_Zbb) & sizeof(xlen) == 64 - <-> 0b011000000001 @ rs1 @ 0b001 @ rd @ 0b0011011 if extensionEnabled(Ext_Zbb) & sizeof(xlen) == 64 +mapping clause encdec = RISCV_CTZW(rs1, rd) if extensionEnabled(Ext_Zbb) & xlen == 64 + <-> 0b011000000001 @ rs1 @ 0b001 @ rd @ 0b0011011 if extensionEnabled(Ext_Zbb) & xlen == 64 mapping clause assembly = RISCV_CTZW(rs1, rd) <-> "ctzw" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) @@ -333,6 +333,6 @@ function clause execute (RISCV_CTZW(rs1, rd)) = { if not(done) then if rs1_val[i] == bitzero then result = result + 1 else done = true; - X(rd) = to_bits(sizeof(xlen), result); + X(rd) = to_bits(xlen, result); RETIRE_SUCCESS } diff --git a/model/riscv_insts_zbkb.sail b/model/riscv_insts_zbkb.sail index b8ce956..d724af3 100644 --- a/model/riscv_insts_zbkb.sail +++ b/model/riscv_insts_zbkb.sail @@ -27,7 +27,7 @@ function clause execute (ZBKB_RTYPE(rs2, rs1, rd, op)) = { let rs1_val = X(rs1); let rs2_val = X(rs2); let result : xlenbits = match op { - RISCV_PACK => rs2_val[(sizeof(xlen_bytes)*4 - 1)..0] @ rs1_val[(sizeof(xlen_bytes)*4 - 1)..0], + RISCV_PACK => rs2_val[(xlen_bytes*4 - 1)..0] @ rs1_val[(xlen_bytes*4 - 1)..0], RISCV_PACKH => zero_extend(rs2_val[7..0] @ rs1_val[7..0]) }; X(rd) = result; @@ -37,14 +37,14 @@ function clause execute (ZBKB_RTYPE(rs2, rs1, rd, op)) = { /* ****************************************************************** */ union clause ast = ZBKB_PACKW : (regidx, regidx, regidx) -mapping clause encdec = ZBKB_PACKW(rs2, rs1, rd) if extensionEnabled(Ext_Zbkb) & sizeof(xlen) == 64 - <-> 0b0000100 @ rs2 @ rs1 @ 0b100 @ rd @ 0b0111011 if extensionEnabled(Ext_Zbkb) & sizeof(xlen) == 64 +mapping clause encdec = ZBKB_PACKW(rs2, rs1, rd) if extensionEnabled(Ext_Zbkb) & xlen == 64 + <-> 0b0000100 @ rs2 @ rs1 @ 0b100 @ rd @ 0b0111011 if extensionEnabled(Ext_Zbkb) & xlen == 64 mapping clause assembly = ZBKB_PACKW(rs2, rs1, rd) <-> "packw" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ reg_name(rs2) function clause execute (ZBKB_PACKW(rs2, rs1, rd)) = { - assert(sizeof(xlen) == 64); + assert(xlen == 64); let rs1_val = X(rs1); let rs2_val = X(rs2); let result : bits(32) = rs2_val[15..0] @ rs1_val[15..0]; @@ -55,19 +55,19 @@ function clause execute (ZBKB_PACKW(rs2, rs1, rd)) = { /* ****************************************************************** */ union clause ast = RISCV_ZIP : (regidx, regidx) -mapping clause encdec = RISCV_ZIP(rs1, rd) if extensionEnabled(Ext_Zbkb) & sizeof(xlen) == 32 - <-> 0b000010001111 @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zbkb) & sizeof(xlen) == 32 +mapping clause encdec = RISCV_ZIP(rs1, rd) if extensionEnabled(Ext_Zbkb) & xlen == 32 + <-> 0b000010001111 @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zbkb) & xlen == 32 mapping clause assembly = RISCV_ZIP(rs1, rd) <-> "zip" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) function clause execute (RISCV_ZIP(rs1, rd)) = { - assert(sizeof(xlen) == 32); + assert(xlen == 32); let rs1_val = X(rs1); var result : xlenbits = zeros(); - foreach (i from 0 to (sizeof(xlen_bytes)*4 - 1)) { + foreach (i from 0 to (xlen_bytes*4 - 1)) { result[i*2] = rs1_val[i]; - result[i*2 + 1] = rs1_val[i + sizeof(xlen_bytes)*4]; + result[i*2 + 1] = rs1_val[i + xlen_bytes*4]; }; X(rd) = result; RETIRE_SUCCESS @@ -76,19 +76,19 @@ function clause execute (RISCV_ZIP(rs1, rd)) = { /* ****************************************************************** */ union clause ast = RISCV_UNZIP : (regidx, regidx) -mapping clause encdec = RISCV_UNZIP(rs1, rd) if extensionEnabled(Ext_Zbkb) & sizeof(xlen) == 32 - <-> 0b000010001111 @ rs1 @ 0b101 @ rd @ 0b0010011 if extensionEnabled(Ext_Zbkb) & sizeof(xlen) == 32 +mapping clause encdec = RISCV_UNZIP(rs1, rd) if extensionEnabled(Ext_Zbkb) & xlen == 32 + <-> 0b000010001111 @ rs1 @ 0b101 @ rd @ 0b0010011 if extensionEnabled(Ext_Zbkb) & xlen == 32 mapping clause assembly = RISCV_UNZIP(rs1, rd) <-> "unzip" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) function clause execute (RISCV_UNZIP(rs1, rd)) = { - assert(sizeof(xlen) == 32); + assert(xlen == 32); let rs1_val = X(rs1); var result : xlenbits = zeros(); - foreach (i from 0 to (sizeof(xlen_bytes)*4 - 1)) { + foreach (i from 0 to (xlen_bytes*4 - 1)) { result[i] = rs1_val[i*2]; - result[i + sizeof(xlen_bytes)*4] = rs1_val[i*2 + 1]; + result[i + xlen_bytes*4] = rs1_val[i*2 + 1]; }; X(rd) = result; RETIRE_SUCCESS @@ -106,7 +106,7 @@ mapping clause assembly = RISCV_BREV8(rs1, rd) function clause execute (RISCV_BREV8(rs1, rd)) = { let rs1_val = X(rs1); var result : xlenbits = zeros(); - foreach (i from 0 to (sizeof(xlen) - 8) by 8) + foreach (i from 0 to (xlen - 8) by 8) result[i+7..i] = reverse(rs1_val[i+7..i]); X(rd) = result; RETIRE_SUCCESS diff --git a/model/riscv_insts_zbkx.sail b/model/riscv_insts_zbkx.sail index 52c8120..2269384 100644 --- a/model/riscv_insts_zbkx.sail +++ b/model/riscv_insts_zbkx.sail @@ -22,9 +22,9 @@ function clause execute (RISCV_XPERM8(rs2, rs1, rd)) = { let rs1_val = X(rs1); let rs2_val = X(rs2); var result : xlenbits = zeros(); - foreach (i from 0 to (sizeof(xlen) - 8) by 8) { + foreach (i from 0 to (xlen - 8) by 8) { let index = unsigned(rs2_val[i+7..i]); - result[i+7..i] = if 8*index < sizeof(xlen) + result[i+7..i] = if 8*index < xlen then rs1_val[8*index+7..8*index] else zeros() }; @@ -45,9 +45,9 @@ function clause execute (RISCV_XPERM4(rs2, rs1, rd)) = { let rs1_val = X(rs1); let rs2_val = X(rs2); var result : xlenbits = zeros(); - foreach (i from 0 to (sizeof(xlen) - 4) by 4) { + foreach (i from 0 to (xlen - 4) by 4) { let index = unsigned(rs2_val[i+3..i]); - result[i+3..i] = if 4*index < sizeof(xlen) + result[i+3..i] = if 4*index < xlen then rs1_val[4*index+3..4*index] else zeros() }; diff --git a/model/riscv_insts_zbs.sail b/model/riscv_insts_zbs.sail index 348b702..a016612 100644 --- a/model/riscv_insts_zbs.sail +++ b/model/riscv_insts_zbs.sail @@ -12,17 +12,17 @@ function clause extensionEnabled(Ext_Zbs) = true | extensionEnabled(Ext_B) /* ****************************************************************** */ union clause ast = ZBS_IOP : (bits(6), regidx, regidx, biop_zbs) -mapping clause encdec = ZBS_IOP(shamt, rs1, rd, RISCV_BCLRI) if extensionEnabled(Ext_Zbs) & (sizeof(xlen) == 64 | shamt[5] == bitzero) - <-> 0b010010 @ shamt @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zbs) & (sizeof(xlen) == 64 | shamt[5] == bitzero) +mapping clause encdec = ZBS_IOP(shamt, rs1, rd, RISCV_BCLRI) if extensionEnabled(Ext_Zbs) & (xlen == 64 | shamt[5] == bitzero) + <-> 0b010010 @ shamt @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zbs) & (xlen == 64 | shamt[5] == bitzero) -mapping clause encdec = ZBS_IOP(shamt, rs1, rd, RISCV_BEXTI) if extensionEnabled(Ext_Zbs) & (sizeof(xlen) == 64 | shamt[5] == bitzero) - <-> 0b010010 @ shamt @ rs1 @ 0b101 @ rd @ 0b0010011 if extensionEnabled(Ext_Zbs) & (sizeof(xlen) == 64 | shamt[5] == bitzero) +mapping clause encdec = ZBS_IOP(shamt, rs1, rd, RISCV_BEXTI) if extensionEnabled(Ext_Zbs) & (xlen == 64 | shamt[5] == bitzero) + <-> 0b010010 @ shamt @ rs1 @ 0b101 @ rd @ 0b0010011 if extensionEnabled(Ext_Zbs) & (xlen == 64 | shamt[5] == bitzero) -mapping clause encdec = ZBS_IOP(shamt, rs1, rd, RISCV_BINVI) if extensionEnabled(Ext_Zbs) & (sizeof(xlen) == 64 | shamt[5] == bitzero) - <-> 0b011010 @ shamt @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zbs) & (sizeof(xlen) == 64 | shamt[5] == bitzero) +mapping clause encdec = ZBS_IOP(shamt, rs1, rd, RISCV_BINVI) if extensionEnabled(Ext_Zbs) & (xlen == 64 | shamt[5] == bitzero) + <-> 0b011010 @ shamt @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zbs) & (xlen == 64 | shamt[5] == bitzero) -mapping clause encdec = ZBS_IOP(shamt, rs1, rd, RISCV_BSETI) if extensionEnabled(Ext_Zbs) & (sizeof(xlen) == 64 | shamt[5] == bitzero) - <-> 0b001010 @ shamt @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zbs) & (sizeof(xlen) == 64 | shamt[5] == bitzero) +mapping clause encdec = ZBS_IOP(shamt, rs1, rd, RISCV_BSETI) if extensionEnabled(Ext_Zbs) & (xlen == 64 | shamt[5] == bitzero) + <-> 0b001010 @ shamt @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zbs) & (xlen == 64 | shamt[5] == bitzero) mapping zbs_iop_mnemonic : biop_zbs <-> string = { RISCV_BCLRI <-> "bclri", @@ -36,7 +36,7 @@ mapping clause assembly = ZBS_IOP(shamt, rs1, rd, op) function clause execute (ZBS_IOP(shamt, rs1, rd, op)) = { let rs1_val = X(rs1); - let mask : xlenbits = if sizeof(xlen) == 32 + let mask : xlenbits = if xlen == 32 then zero_extend(0b1) << shamt[4..0] else zero_extend(0b1) << shamt; let result : xlenbits = match op { @@ -77,7 +77,7 @@ mapping clause assembly = ZBS_RTYPE(rs2, rs1, rd, op) function clause execute (ZBS_RTYPE(rs2, rs1, rd, op)) = { let rs1_val = X(rs1); let rs2_val = X(rs2); - let mask : xlenbits = if sizeof(xlen) == 32 + let mask : xlenbits = if xlen == 32 then zero_extend(0b1) << rs2_val[4..0] else zero_extend(0b1) << rs2_val[5..0]; let result : xlenbits = match op { diff --git a/model/riscv_insts_cext.sail b/model/riscv_insts_zca.sail index c93332a..cadf305 100644 --- a/model/riscv_insts_cext.sail +++ b/model/riscv_insts_zca.sail @@ -7,18 +7,17 @@ /*=======================================================================================*/ /* ********************************************************************* */ -/* This file specifies the compressed instructions in the 'C' extension. */ +/* This file specifies the compressed instructions in the 'Zca' extension. */ -/* These instructions are only legal if misa[C] is true. Instead of - * checking this in every execute clause, we currently do the check in one place - * in the fetch-execute logic. +/* Instead of checking for Zca in every execute clause, we currently do + * the check in one place in the fetch-execute logic. */ /* ****************************************************************** */ union clause ast = C_NOP : unit -mapping clause encdec_compressed = C_NOP() if extensionEnabled(Ext_C) - <-> 0b000 @ 0b0 @ 0b00000 @ 0b00000 @ 0b01 if extensionEnabled(Ext_C) +mapping clause encdec_compressed = C_NOP() if extensionEnabled(Ext_Zca) + <-> 0b000 @ 0b0 @ 0b00000 @ 0b00000 @ 0b01 if extensionEnabled(Ext_Zca) function clause execute C_NOP() = RETIRE_SUCCESS @@ -29,9 +28,9 @@ mapping clause assembly = C_NOP() <-> "c.nop" union clause ast = C_ADDI4SPN : (cregidx, bits(8)) mapping clause encdec_compressed = C_ADDI4SPN(rd, nz96 @ nz54 @ nz3 @ nz2) - if nz96 @ nz54 @ nz3 @ nz2 != 0b00000000 & extensionEnabled(Ext_C) + if nz96 @ nz54 @ nz3 @ nz2 != 0b00000000 & extensionEnabled(Ext_Zca) <-> 0b000 @ nz54 : bits(2) @ nz96 : bits(4) @ nz2 : bits(1) @ nz3 : bits(1) @ rd : cregidx @ 0b00 - if nz96 @ nz54 @ nz3 @ nz2 != 0b00000000 & extensionEnabled(Ext_C) + if nz96 @ nz54 @ nz3 @ nz2 != 0b00000000 & extensionEnabled(Ext_Zca) function clause execute (C_ADDI4SPN(rdc, nzimm)) = { let imm : bits(12) = (0b00 @ nzimm @ 0b00); @@ -47,8 +46,8 @@ mapping clause assembly = C_ADDI4SPN(rdc, nzimm) /* ****************************************************************** */ union clause ast = C_LW : (bits(5), cregidx, cregidx) -mapping clause encdec_compressed = C_LW(ui6 @ ui53 @ ui2, rs1, rd) if extensionEnabled(Ext_C) - <-> 0b010 @ ui53 : bits(3) @ rs1 : cregidx @ ui2 : bits(1) @ ui6 : bits(1) @ rd : cregidx @ 0b00 if extensionEnabled(Ext_C) +mapping clause encdec_compressed = C_LW(ui6 @ ui53 @ ui2, rs1, rd) if extensionEnabled(Ext_Zca) + <-> 0b010 @ ui53 : bits(3) @ rs1 : cregidx @ ui2 : bits(1) @ ui6 : bits(1) @ rd : cregidx @ 0b00 if extensionEnabled(Ext_Zca) function clause execute (C_LW(uimm, rsc, rdc)) = { let imm : bits(12) = zero_extend(uimm @ 0b00); @@ -64,9 +63,9 @@ mapping clause assembly = C_LW(uimm, rsc, rdc) union clause ast = C_LD : (bits(5), cregidx, cregidx) mapping clause encdec_compressed = C_LD(ui76 @ ui53, rs1, rd) - if sizeof(xlen) == 64 & extensionEnabled(Ext_C) + if xlen == 64 & extensionEnabled(Ext_Zca) <-> 0b011 @ ui53 : bits(3) @ rs1 : cregidx @ ui76 : bits(2) @ rd : cregidx @ 0b00 - if sizeof(xlen) == 64 & extensionEnabled(Ext_C) + if xlen == 64 & extensionEnabled(Ext_Zca) function clause execute (C_LD(uimm, rsc, rdc)) = { let imm : bits(12) = zero_extend(uimm @ 0b000); @@ -76,15 +75,15 @@ function clause execute (C_LD(uimm, rsc, rdc)) = { } mapping clause assembly = C_LD(uimm, rsc, rdc) - if sizeof(xlen) == 64 + if xlen == 64 <-> "c.ld" ^ spc() ^ creg_name(rdc) ^ sep() ^ creg_name(rsc) ^ sep() ^ hex_bits_8(uimm @ 0b000) - if sizeof(xlen) == 64 + if xlen == 64 /* ****************************************************************** */ union clause ast = C_SW : (bits(5), cregidx, cregidx) -mapping clause encdec_compressed = C_SW(ui6 @ ui53 @ ui2, rs1, rs2) if extensionEnabled(Ext_C) - <-> 0b110 @ ui53 : bits(3) @ rs1 : cregidx @ ui2 : bits(1) @ ui6 : bits(1) @ rs2 : cregidx @ 0b00 if extensionEnabled(Ext_C) +mapping clause encdec_compressed = C_SW(ui6 @ ui53 @ ui2, rs1, rs2) if extensionEnabled(Ext_Zca) + <-> 0b110 @ ui53 : bits(3) @ rs1 : cregidx @ ui2 : bits(1) @ ui6 : bits(1) @ rs2 : cregidx @ 0b00 if extensionEnabled(Ext_Zca) function clause execute (C_SW(uimm, rsc1, rsc2)) = { let imm : bits(12) = zero_extend(uimm @ 0b00); @@ -100,9 +99,9 @@ mapping clause assembly = C_SW(uimm, rsc1, rsc2) union clause ast = C_SD : (bits(5), cregidx, cregidx) mapping clause encdec_compressed = C_SD(ui76 @ ui53, rs1, rs2) - if sizeof(xlen) == 64 & extensionEnabled(Ext_C) + if xlen == 64 & extensionEnabled(Ext_Zca) <-> 0b111 @ ui53 : bits(3) @ rs1 : bits(3) @ ui76 : bits(2) @ rs2 : bits(3) @ 0b00 - if sizeof(xlen) == 64 & extensionEnabled(Ext_C) + if xlen == 64 & extensionEnabled(Ext_Zca) function clause execute (C_SD(uimm, rsc1, rsc2)) = { let imm : bits(12) = zero_extend(uimm @ 0b000); @@ -112,17 +111,17 @@ function clause execute (C_SD(uimm, rsc1, rsc2)) = { } mapping clause assembly = C_SD(uimm, rsc1, rsc2) - if sizeof(xlen) == 64 + if xlen == 64 <-> "c.sd" ^ spc() ^ creg_name(rsc1) ^ sep() ^ creg_name(rsc2) ^ sep() ^ hex_bits_8(uimm @ 0b000) - if sizeof(xlen) == 64 + if xlen == 64 /* ****************************************************************** */ union clause ast = C_ADDI : (bits(6), regidx) mapping clause encdec_compressed = C_ADDI(nzi5 @ nzi40, rsd) - if nzi5 @ nzi40 != 0b000000 & rsd != zreg & extensionEnabled(Ext_C) + if nzi5 @ nzi40 != 0b000000 & rsd != zreg & extensionEnabled(Ext_Zca) <-> 0b000 @ nzi5 : bits(1) @ rsd : regidx @ nzi40 : bits(5) @ 0b01 - if nzi5 @ nzi40 != 0b000000 & rsd != zreg & extensionEnabled(Ext_C) + if nzi5 @ nzi40 != 0b000000 & rsd != zreg & extensionEnabled(Ext_Zca) function clause execute (C_ADDI(nzi, rsd)) = { let imm : bits(12) = sign_extend(nzi); @@ -138,41 +137,41 @@ mapping clause assembly = C_ADDI(nzi, rsd) union clause ast = C_JAL : (bits(11)) mapping clause encdec_compressed = C_JAL(i11 @ i10 @ i98 @ i7 @ i6 @ i5 @ i4 @ i31) - if sizeof(xlen) == 32 & extensionEnabled(Ext_C) + if xlen == 32 & extensionEnabled(Ext_Zca) <-> 0b001 @ i11 : bits(1) @ i4 : bits(1) @ i98 : bits(2) @ i10 : bits(1) @ i6 : bits(1) @ i7 : bits(1) @ i31 : bits(3) @ i5 : bits(1) @ 0b01 - if sizeof(xlen) == 32 & extensionEnabled(Ext_C) + if xlen == 32 & extensionEnabled(Ext_Zca) function clause execute (C_JAL(imm)) = execute(RISCV_JAL(sign_extend(imm @ 0b0), ra)) mapping clause assembly = C_JAL(imm) - if sizeof(xlen) == 32 + if xlen == 32 <-> "c.jal" ^ spc() ^ hex_bits_signed_12(imm @ 0b0) - if sizeof(xlen) == 32 + if xlen == 32 /* ****************************************************************** */ union clause ast = C_ADDIW : (bits(6), regidx) mapping clause encdec_compressed = C_ADDIW(imm5 @ imm40, rsd) - if rsd != zreg & sizeof(xlen) == 64 & extensionEnabled(Ext_C) + if rsd != zreg & xlen == 64 & extensionEnabled(Ext_Zca) <-> 0b001 @ imm5 : bits(1) @ rsd : regidx @ imm40 : bits(5) @ 0b01 - if rsd != zreg & sizeof(xlen) == 64 & extensionEnabled(Ext_C) + if rsd != zreg & xlen == 64 & extensionEnabled(Ext_Zca) function clause execute (C_ADDIW(imm, rsd)) = execute(ADDIW(sign_extend(imm), rsd, rsd)) mapping clause assembly = C_ADDIW(imm, rsd) - if sizeof(xlen) == 64 + if xlen == 64 <-> "c.addiw" ^ spc() ^ reg_name(rsd) ^ sep() ^ hex_bits_signed_6(imm) - if sizeof(xlen) == 64 + if xlen == 64 /* ****************************************************************** */ union clause ast = C_LI : (bits(6), regidx) mapping clause encdec_compressed = C_LI(imm5 @ imm40, rd) - if rd != zreg & extensionEnabled(Ext_C) + if rd != zreg & extensionEnabled(Ext_Zca) <-> 0b010 @ imm5 : bits(1) @ rd : regidx @ imm40 : bits(5) @ 0b01 - if rd != zreg & extensionEnabled(Ext_C) + if rd != zreg & extensionEnabled(Ext_Zca) function clause execute (C_LI(imm, rd)) = { let imm : bits(12) = sign_extend(imm); @@ -188,9 +187,9 @@ mapping clause assembly = C_LI(imm, rd) union clause ast = C_ADDI16SP : (bits(6)) mapping clause encdec_compressed = C_ADDI16SP(nzi9 @ nzi87 @ nzi6 @ nzi5 @ nzi4) - if nzi9 @ nzi87 @ nzi6 @ nzi5 @ nzi4 != 0b000000 & extensionEnabled(Ext_C) + if nzi9 @ nzi87 @ nzi6 @ nzi5 @ nzi4 != 0b000000 & extensionEnabled(Ext_Zca) <-> 0b011 @ nzi9 : bits(1) @ /* x2 */ 0b00010 @ nzi4 : bits(1) @ nzi6 : bits(1) @ nzi87 : bits(2) @ nzi5 : bits(1) @ 0b01 - if nzi9 @ nzi87 @ nzi6 @ nzi5 @ nzi4 != 0b000000 & extensionEnabled(Ext_C) + if nzi9 @ nzi87 @ nzi6 @ nzi5 @ nzi4 != 0b000000 & extensionEnabled(Ext_Zca) function clause execute (C_ADDI16SP(imm)) = { let imm : bits(12) = sign_extend(imm @ 0x0); @@ -206,9 +205,9 @@ mapping clause assembly = C_ADDI16SP(imm) union clause ast = C_LUI : (bits(6), regidx) mapping clause encdec_compressed = C_LUI(imm17 @ imm1612, rd) - if rd != zreg & rd != sp & imm17 @ imm1612 != 0b000000 & extensionEnabled(Ext_C) + if rd != zreg & rd != sp & imm17 @ imm1612 != 0b000000 & extensionEnabled(Ext_Zca) <-> 0b011 @ imm17 : bits(1) @ rd : regidx @ imm1612 : bits(5) @ 0b01 - if rd != zreg & rd != sp & imm17 @ imm1612 != 0b000000 & extensionEnabled(Ext_C) + if rd != zreg & rd != sp & imm17 @ imm1612 != 0b000000 & extensionEnabled(Ext_Zca) function clause execute (C_LUI(imm, rd)) = { let res : bits(20) = sign_extend(imm); @@ -224,9 +223,9 @@ mapping clause assembly = C_LUI(imm, rd) union clause ast = C_SRLI : (bits(6), cregidx) mapping clause encdec_compressed = C_SRLI(nzui5 @ nzui40, rsd) - if nzui5 @ nzui40 != 0b000000 & (sizeof(xlen) == 64 | nzui5 == 0b0) & extensionEnabled(Ext_C) + if nzui5 @ nzui40 != 0b000000 & (xlen == 64 | nzui5 == 0b0) & extensionEnabled(Ext_Zca) <-> 0b100 @ nzui5 : bits(1) @ 0b00 @ rsd : cregidx @ nzui40 : bits(5) @ 0b01 - if nzui5 @ nzui40 != 0b000000 & (sizeof(xlen) == 64 | nzui5 == 0b0) & extensionEnabled(Ext_C) + if nzui5 @ nzui40 != 0b000000 & (xlen == 64 | nzui5 == 0b0) & extensionEnabled(Ext_Zca) function clause execute (C_SRLI(shamt, rsd)) = { let rsd = creg2reg_idx(rsd); @@ -242,9 +241,9 @@ mapping clause assembly = C_SRLI(shamt, rsd) union clause ast = C_SRAI : (bits(6), cregidx) mapping clause encdec_compressed = C_SRAI(nzui5 @ nzui40, rsd) - if nzui5 @ nzui40 != 0b000000 & (sizeof(xlen) == 64 | nzui5 == 0b0) & extensionEnabled(Ext_C) + if nzui5 @ nzui40 != 0b000000 & (xlen == 64 | nzui5 == 0b0) & extensionEnabled(Ext_Zca) <-> 0b100 @ nzui5 : bits(1) @ 0b01 @ rsd : cregidx @ nzui40 : bits(5) @ 0b01 - if nzui5 @ nzui40 != 0b000000 & (sizeof(xlen) == 64 | nzui5 == 0b0) & extensionEnabled(Ext_C) + if nzui5 @ nzui40 != 0b000000 & (xlen == 64 | nzui5 == 0b0) & extensionEnabled(Ext_Zca) function clause execute (C_SRAI(shamt, rsd)) = { let rsd = creg2reg_idx(rsd); @@ -259,8 +258,8 @@ mapping clause assembly = C_SRAI(shamt, rsd) /* ****************************************************************** */ union clause ast = C_ANDI : (bits(6), cregidx) -mapping clause encdec_compressed = C_ANDI(i5 @ i40, rsd) if extensionEnabled(Ext_C) - <-> 0b100 @ i5 : bits(1) @ 0b10 @ rsd : cregidx @ i40 : bits(5) @ 0b01 if extensionEnabled(Ext_C) +mapping clause encdec_compressed = C_ANDI(i5 @ i40, rsd) if extensionEnabled(Ext_Zca) + <-> 0b100 @ i5 : bits(1) @ 0b10 @ rsd : cregidx @ i40 : bits(5) @ 0b01 if extensionEnabled(Ext_Zca) function clause execute (C_ANDI(imm, rsd)) = { let rsd = creg2reg_idx(rsd); @@ -273,8 +272,8 @@ mapping clause assembly = C_ANDI(imm, rsd) /* ****************************************************************** */ union clause ast = C_SUB : (cregidx, cregidx) -mapping clause encdec_compressed = C_SUB(rsd, rs2) if extensionEnabled(Ext_C) - <-> 0b100 @ 0b0 @ 0b11 @ rsd : cregidx @ 0b00 @ rs2 : cregidx @ 0b01 if extensionEnabled(Ext_C) +mapping clause encdec_compressed = C_SUB(rsd, rs2) if extensionEnabled(Ext_Zca) + <-> 0b100 @ 0b0 @ 0b11 @ rsd : cregidx @ 0b00 @ rs2 : cregidx @ 0b01 if extensionEnabled(Ext_Zca) function clause execute (C_SUB(rsd, rs2)) = { let rsd = creg2reg_idx(rsd); @@ -288,8 +287,8 @@ mapping clause assembly = C_SUB(rsd, rs2) /* ****************************************************************** */ union clause ast = C_XOR : (cregidx, cregidx) -mapping clause encdec_compressed = C_XOR(rsd, rs2) if extensionEnabled(Ext_C) - <-> 0b100 @ 0b0 @ 0b11 @ rsd : cregidx @ 0b01 @ rs2 : cregidx @ 0b01 if extensionEnabled(Ext_C) +mapping clause encdec_compressed = C_XOR(rsd, rs2) if extensionEnabled(Ext_Zca) + <-> 0b100 @ 0b0 @ 0b11 @ rsd : cregidx @ 0b01 @ rs2 : cregidx @ 0b01 if extensionEnabled(Ext_Zca) function clause execute (C_XOR(rsd, rs2)) = { let rsd = creg2reg_idx(rsd); @@ -303,8 +302,8 @@ mapping clause assembly = C_XOR(rsd, rs2) /* ****************************************************************** */ union clause ast = C_OR : (cregidx, cregidx) -mapping clause encdec_compressed = C_OR(rsd, rs2) if extensionEnabled(Ext_C) - <-> 0b100 @ 0b0 @ 0b11 @ rsd : cregidx @ 0b10 @ rs2 : cregidx @ 0b01 if extensionEnabled(Ext_C) +mapping clause encdec_compressed = C_OR(rsd, rs2) if extensionEnabled(Ext_Zca) + <-> 0b100 @ 0b0 @ 0b11 @ rsd : cregidx @ 0b10 @ rs2 : cregidx @ 0b01 if extensionEnabled(Ext_Zca) function clause execute (C_OR(rsd, rs2)) = { let rsd = creg2reg_idx(rsd); @@ -318,8 +317,8 @@ mapping clause assembly = C_OR(rsd, rs2) /* ****************************************************************** */ union clause ast = C_AND : (cregidx, cregidx) -mapping clause encdec_compressed = C_AND(rsd, rs2) if extensionEnabled(Ext_C) - <-> 0b100 @ 0b0 @ 0b11 @ rsd : cregidx @ 0b11 @ rs2 : cregidx @ 0b01 if extensionEnabled(Ext_C) +mapping clause encdec_compressed = C_AND(rsd, rs2) if extensionEnabled(Ext_Zca) + <-> 0b100 @ 0b0 @ 0b11 @ rsd : cregidx @ 0b11 @ rs2 : cregidx @ 0b01 if extensionEnabled(Ext_Zca) function clause execute (C_AND(rsd, rs2)) = { let rsd = creg2reg_idx(rsd); @@ -334,9 +333,9 @@ mapping clause assembly = C_AND(rsd, rs2) union clause ast = C_SUBW : (cregidx, cregidx) mapping clause encdec_compressed = C_SUBW(rsd, rs2) - if sizeof(xlen) == 64 & extensionEnabled(Ext_C) + if xlen == 64 & extensionEnabled(Ext_Zca) <-> 0b100 @ 0b1 @ 0b11 @ rsd : cregidx @ 0b00 @ rs2 : cregidx @ 0b01 - if sizeof(xlen) == 64 & extensionEnabled(Ext_C) + if xlen == 64 & extensionEnabled(Ext_Zca) function clause execute (C_SUBW(rsd, rs2)) = { let rsd = creg2reg_idx(rsd); @@ -345,17 +344,17 @@ function clause execute (C_SUBW(rsd, rs2)) = { } mapping clause assembly = C_SUBW(rsd, rs2) - if sizeof(xlen) == 64 + if xlen == 64 <-> "c.subw" ^ spc() ^ creg_name(rsd) ^ sep() ^ creg_name(rs2) - if sizeof(xlen) == 64 + if xlen == 64 /* ****************************************************************** */ union clause ast = C_ADDW : (cregidx, cregidx) mapping clause encdec_compressed = C_ADDW(rsd, rs2) - if sizeof(xlen) == 64 & extensionEnabled(Ext_C) + if xlen == 64 & extensionEnabled(Ext_Zca) <-> 0b100 @ 0b1 @ 0b11 @ rsd : cregidx @ 0b01 @ rs2 : cregidx @ 0b01 - if sizeof(xlen) == 64 & extensionEnabled(Ext_C) + if xlen == 64 & extensionEnabled(Ext_Zca) function clause execute (C_ADDW(rsd, rs2)) = { let rsd = creg2reg_idx(rsd); @@ -364,27 +363,27 @@ function clause execute (C_ADDW(rsd, rs2)) = { } mapping clause assembly = C_ADDW(rsd, rs2) - if sizeof(xlen) == 64 + if xlen == 64 <-> "c.addw" ^ spc() ^ creg_name(rsd) ^ sep() ^ creg_name(rs2) - if sizeof(xlen) == 64 + if xlen == 64 /* ****************************************************************** */ union clause ast = C_J : (bits(11)) -mapping clause encdec_compressed = C_J(i11 @ i10 @ i98 @ i7 @ i6 @ i5 @ i4 @ i31) if extensionEnabled(Ext_C) - <-> 0b101 @ i11 : bits(1) @ i4 : bits(1) @ i98 : bits(2) @ i10 : bits(1) @ i6 : bits(1) @ i7 : bits(1) @ i31 : bits(3) @ i5 : bits(1) @ 0b01 if extensionEnabled(Ext_C) +mapping clause encdec_compressed = C_J(i11 @ i10 @ i98 @ i7 @ i6 @ i5 @ i4 @ i31) if extensionEnabled(Ext_Zca) + <-> 0b101 @ i11 : bits(1) @ i4 : bits(1) @ i98 : bits(2) @ i10 : bits(1) @ i6 : bits(1) @ i7 : bits(1) @ i31 : bits(3) @ i5 : bits(1) @ 0b01 if extensionEnabled(Ext_Zca) function clause execute (C_J(imm)) = execute(RISCV_JAL(sign_extend(imm @ 0b0), zreg)) mapping clause assembly = C_J(imm) - <-> "c.j" ^ spc() ^ hex_bits_signed_11(imm) + <-> "c.j" ^ spc() ^ hex_bits_signed_12(imm @ 0b0) /* ****************************************************************** */ union clause ast = C_BEQZ : (bits(8), cregidx) -mapping clause encdec_compressed = C_BEQZ(i8 @ i76 @ i5 @ i43 @ i21, rs) if extensionEnabled(Ext_C) - <-> 0b110 @ i8 : bits(1) @ i43 : bits(2) @ rs : cregidx @ i76 : bits(2) @ i21 : bits(2) @ i5 : bits(1) @ 0b01 if extensionEnabled(Ext_C) +mapping clause encdec_compressed = C_BEQZ(i8 @ i76 @ i5 @ i43 @ i21, rs) if extensionEnabled(Ext_Zca) + <-> 0b110 @ i8 : bits(1) @ i43 : bits(2) @ rs : cregidx @ i76 : bits(2) @ i21 : bits(2) @ i5 : bits(1) @ 0b01 if extensionEnabled(Ext_Zca) function clause execute (C_BEQZ(imm, rs)) = execute(BTYPE(sign_extend(imm @ 0b0), zreg, creg2reg_idx(rs), RISCV_BEQ)) @@ -395,8 +394,8 @@ mapping clause assembly = C_BEQZ(imm, rs) /* ****************************************************************** */ union clause ast = C_BNEZ : (bits(8), cregidx) -mapping clause encdec_compressed = C_BNEZ(i8 @ i76 @ i5 @ i43 @ i21, rs) if extensionEnabled(Ext_C) - <-> 0b111 @ i8 : bits(1) @ i43 : bits(2) @ rs : cregidx @ i76 : bits(2) @ i21 : bits(2) @ i5 : bits(1) @ 0b01 if extensionEnabled(Ext_C) +mapping clause encdec_compressed = C_BNEZ(i8 @ i76 @ i5 @ i43 @ i21, rs) if extensionEnabled(Ext_Zca) + <-> 0b111 @ i8 : bits(1) @ i43 : bits(2) @ rs : cregidx @ i76 : bits(2) @ i21 : bits(2) @ i5 : bits(1) @ 0b01 if extensionEnabled(Ext_Zca) function clause execute (C_BNEZ(imm, rs)) = execute(BTYPE(sign_extend(imm @ 0b0), zreg, creg2reg_idx(rs), RISCV_BNE)) @@ -408,9 +407,9 @@ mapping clause assembly = C_BNEZ(imm, rs) union clause ast = C_SLLI : (bits(6), regidx) mapping clause encdec_compressed = C_SLLI(nzui5 @ nzui40, rsd) - if nzui5 @ nzui40 != 0b000000 & rsd != zreg & (sizeof(xlen) == 64 | nzui5 == 0b0) & extensionEnabled(Ext_C) + if nzui5 @ nzui40 != 0b000000 & rsd != zreg & (xlen == 64 | nzui5 == 0b0) & extensionEnabled(Ext_Zca) <-> 0b000 @ nzui5 : bits(1) @ rsd : regidx @ nzui40 : bits(5) @ 0b10 - if nzui5 @ nzui40 != 0b000000 & rsd != zreg & (sizeof(xlen) == 64 | nzui5 == 0b0) & extensionEnabled(Ext_C) + if nzui5 @ nzui40 != 0b000000 & rsd != zreg & (xlen == 64 | nzui5 == 0b0) & extensionEnabled(Ext_Zca) function clause execute (C_SLLI(shamt, rsd)) = execute(SHIFTIOP(shamt, rsd, rsd, RISCV_SLLI)) @@ -424,9 +423,9 @@ mapping clause assembly = C_SLLI(shamt, rsd) union clause ast = C_LWSP : (bits(6), regidx) mapping clause encdec_compressed = C_LWSP(ui76 @ ui5 @ ui42, rd) - if rd != zreg & extensionEnabled(Ext_C) + if rd != zreg & extensionEnabled(Ext_Zca) <-> 0b010 @ ui5 : bits(1) @ rd : regidx @ ui42 : bits(3) @ ui76 : bits(2) @ 0b10 - if rd != zreg & extensionEnabled(Ext_C) + if rd != zreg & extensionEnabled(Ext_Zca) function clause execute (C_LWSP(uimm, rd)) = { let imm : bits(12) = zero_extend(uimm @ 0b00); @@ -442,9 +441,9 @@ mapping clause assembly = C_LWSP(uimm, rd) union clause ast = C_LDSP : (bits(6), regidx) mapping clause encdec_compressed = C_LDSP(ui86 @ ui5 @ ui43, rd) - if rd != zreg & sizeof(xlen) == 64 & extensionEnabled(Ext_C) + if rd != zreg & xlen == 64 & extensionEnabled(Ext_Zca) <-> 0b011 @ ui5 : bits(1) @ rd : regidx @ ui43 : bits(2) @ ui86 : bits(3) @ 0b10 - if rd != zreg & sizeof(xlen) == 64 & extensionEnabled(Ext_C) + if rd != zreg & xlen == 64 & extensionEnabled(Ext_Zca) function clause execute (C_LDSP(uimm, rd)) = { let imm : bits(12) = zero_extend(uimm @ 0b000); @@ -452,17 +451,17 @@ function clause execute (C_LDSP(uimm, rd)) = { } mapping clause assembly = C_LDSP(uimm, rd) - if rd != zreg & sizeof(xlen) == 64 + if rd != zreg & xlen == 64 <-> "c.ldsp" ^ spc() ^ reg_name(rd) ^ sep() ^ hex_bits_6(uimm) - if rd != zreg & sizeof(xlen) == 64 + if rd != zreg & xlen == 64 /* ****************************************************************** */ union clause ast = C_SWSP : (bits(6), regidx) mapping clause encdec_compressed = C_SWSP(ui76 @ ui52, rs2) - if extensionEnabled(Ext_C) + if extensionEnabled(Ext_Zca) <-> 0b110 @ ui52 : bits(4) @ ui76 : bits(2) @ rs2 : regidx @ 0b10 - if extensionEnabled(Ext_C) + if extensionEnabled(Ext_Zca) function clause execute (C_SWSP(uimm, rs2)) = { let imm : bits(12) = zero_extend(uimm @ 0b00); @@ -476,9 +475,9 @@ mapping clause assembly = C_SWSP(uimm, rs2) union clause ast = C_SDSP : (bits(6), regidx) mapping clause encdec_compressed = C_SDSP(ui86 @ ui53, rs2) - if sizeof(xlen) == 64 & extensionEnabled(Ext_C) + if xlen == 64 & extensionEnabled(Ext_Zca) <-> 0b111 @ ui53 : bits(3) @ ui86 : bits(3) @ rs2 : regidx @ 0b10 - if sizeof(xlen) == 64 & extensionEnabled(Ext_C) + if xlen == 64 & extensionEnabled(Ext_Zca) function clause execute (C_SDSP(uimm, rs2)) = { let imm : bits(12) = zero_extend(uimm @ 0b000); @@ -486,20 +485,20 @@ function clause execute (C_SDSP(uimm, rs2)) = { } mapping clause assembly = C_SDSP(uimm, rs2) - if sizeof(xlen) == 64 + if xlen == 64 <-> "c.sdsp" ^ spc() ^ reg_name(rs2) ^ sep() ^ hex_bits_6(uimm) - if sizeof(xlen) == 64 + if xlen == 64 /* ****************************************************************** */ union clause ast = C_JR : (regidx) mapping clause encdec_compressed = C_JR(rs1) - if rs1 != zreg & extensionEnabled(Ext_C) + if rs1 != zreg & extensionEnabled(Ext_Zca) <-> 0b100 @ 0b0 @ rs1 : regidx @ 0b00000 @ 0b10 - if rs1 != zreg & extensionEnabled(Ext_C) + if rs1 != zreg & extensionEnabled(Ext_Zca) function clause execute (C_JR(rs1)) = - execute(RISCV_JALR(zero_extend(0b0), rs1, zreg)) + execute(RISCV_JALR(zeros(), rs1, zreg)) mapping clause assembly = C_JR(rs1) if rs1 != zreg @@ -510,12 +509,12 @@ mapping clause assembly = C_JR(rs1) union clause ast = C_JALR : (regidx) mapping clause encdec_compressed = C_JALR(rs1) - if rs1 != zreg & extensionEnabled(Ext_C) + if rs1 != zreg & extensionEnabled(Ext_Zca) <-> 0b100 @ 0b1 @ rs1 : regidx @ 0b00000 @ 0b10 - if rs1 != zreg & extensionEnabled(Ext_C) + if rs1 != zreg & extensionEnabled(Ext_Zca) function clause execute (C_JALR(rs1)) = - execute(RISCV_JALR(zero_extend(0b0), rs1, ra)) + execute(RISCV_JALR(zeros(), rs1, ra)) mapping clause assembly = C_JALR(rs1) if rs1 != zreg @@ -526,9 +525,9 @@ mapping clause assembly = C_JALR(rs1) union clause ast = C_MV : (regidx, regidx) mapping clause encdec_compressed = C_MV(rd, rs2) - if rd != zreg & rs2 != zreg & extensionEnabled(Ext_C) + if rd != zreg & rs2 != zreg & extensionEnabled(Ext_Zca) <-> 0b100 @ 0b0 @ rd : regidx @ rs2 : regidx @ 0b10 - if rd != zreg & rs2 != zreg & extensionEnabled(Ext_C) + if rd != zreg & rs2 != zreg & extensionEnabled(Ext_Zca) function clause execute (C_MV(rd, rs2)) = execute(RTYPE(rs2, zreg, rd, RISCV_ADD)) @@ -541,8 +540,8 @@ mapping clause assembly = C_MV(rd, rs2) /* ****************************************************************** */ union clause ast = C_EBREAK : unit -mapping clause encdec_compressed = C_EBREAK() if extensionEnabled(Ext_C) - <-> 0b100 @ 0b1 @ 0b00000 @ 0b00000 @ 0b10 if extensionEnabled(Ext_C) +mapping clause encdec_compressed = C_EBREAK() if extensionEnabled(Ext_Zca) + <-> 0b100 @ 0b1 @ 0b00000 @ 0b00000 @ 0b10 if extensionEnabled(Ext_Zca) function clause execute C_EBREAK() = execute(EBREAK()) @@ -553,9 +552,9 @@ mapping clause assembly = C_EBREAK() <-> "c.ebreak" union clause ast = C_ADD : (regidx, regidx) mapping clause encdec_compressed = C_ADD(rsd, rs2) - if rsd != zreg & rs2 != zreg & extensionEnabled(Ext_C) + if rsd != zreg & rs2 != zreg & extensionEnabled(Ext_Zca) <-> 0b100 @ 0b1 @ rsd : regidx @ rs2 : regidx @ 0b10 - if rsd != zreg & rs2 != zreg & extensionEnabled(Ext_C) + if rsd != zreg & rs2 != zreg & extensionEnabled(Ext_Zca) function clause execute (C_ADD(rsd, rs2)) = execute(RTYPE(rs2, rsd, rsd, RISCV_ADD)) diff --git a/model/riscv_insts_zcb.sail b/model/riscv_insts_zcb.sail index e0e1040..3bef346 100644 --- a/model/riscv_insts_zcb.sail +++ b/model/riscv_insts_zcb.sail @@ -7,7 +7,7 @@ /*=======================================================================================*/ enum clause extension = Ext_Zcb -function clause extensionEnabled(Ext_Zcb) = sys_enable_zcb() +function clause extensionEnabled(Ext_Zcb) = sys_enable_zcb() & extensionEnabled(Ext_Zca) union clause ast = C_LBU : (bits(2), cregidx, cregidx) @@ -167,8 +167,8 @@ function clause execute C_SEXT_H(rsdc) = { union clause ast = C_ZEXT_W : (cregidx) mapping clause encdec_compressed = - C_ZEXT_W(rsdc) if extensionEnabled(Ext_Zcb) & extensionEnabled(Ext_Zba) & sizeof(xlen) == 64 - <-> 0b100 @ 0b111 @ rsdc : cregidx @ 0b11 @ 0b100 @ 0b01 if extensionEnabled(Ext_Zcb) & extensionEnabled(Ext_Zba) & sizeof(xlen) == 64 + C_ZEXT_W(rsdc) if extensionEnabled(Ext_Zcb) & extensionEnabled(Ext_Zba) & xlen == 64 + <-> 0b100 @ 0b111 @ rsdc : cregidx @ 0b11 @ 0b100 @ 0b01 if extensionEnabled(Ext_Zcb) & extensionEnabled(Ext_Zba) & xlen == 64 mapping clause assembly = C_ZEXT_W(rsdc) <-> "c.zext.w" ^ spc() ^ creg_name(rsdc) diff --git a/model/riscv_insts_cdext.sail b/model/riscv_insts_zcd.sail index 5571bef..2d5f7c0 100644 --- a/model/riscv_insts_cdext.sail +++ b/model/riscv_insts_zcd.sail @@ -6,20 +6,13 @@ /* SPDX-License-Identifier: BSD-2-Clause */ /*=======================================================================================*/ -/* ********************************************************************* */ -/* This file specifies the compressed floating-point instructions. - * - * These instructions are only legal if misa[C] and misa[D] - * are set. - */ +enum clause extension = Ext_Zcd +function clause extensionEnabled(Ext_Zcd) = extensionEnabled(Ext_Zca) & extensionEnabled(Ext_D) & (xlen == 32 | xlen == 64) -/* ****************************************************************** */ union clause ast = C_FLDSP : (bits(6), regidx) -mapping clause encdec_compressed = C_FLDSP(ui86 @ ui5 @ ui43, rd) - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) & extensionEnabled(Ext_C) & extensionEnabled(Ext_D) - <-> 0b001 @ ui5 : bits(1) @ rd : regidx @ ui43 : bits(2) @ ui86 : bits(3) @ 0b10 - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) & extensionEnabled(Ext_C) & extensionEnabled(Ext_D) +mapping clause encdec_compressed = C_FLDSP(ui86 @ ui5 @ ui43, rd) if extensionEnabled(Ext_Zcd) + <-> 0b001 @ ui5 : bits(1) @ rd : regidx @ ui43 : bits(2) @ ui86 : bits(3) @ 0b10 if extensionEnabled(Ext_Zcd) function clause execute (C_FLDSP(uimm, rd)) = { let imm : bits(12) = zero_extend(uimm @ 0b000); @@ -27,17 +20,15 @@ function clause execute (C_FLDSP(uimm, rd)) = { } mapping clause assembly = C_FLDSP(uimm, rd) - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) + if (xlen == 32 | xlen == 64) <-> "c.fldsp" ^ spc() ^ reg_name(rd) ^ sep() ^ hex_bits_6(uimm) - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) + if (xlen == 32 | xlen == 64) /* ****************************************************************** */ union clause ast = C_FSDSP : (bits(6), regidx) -mapping clause encdec_compressed = C_FSDSP(ui86 @ ui53, rs2) - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) & extensionEnabled(Ext_C) & extensionEnabled(Ext_D) - <-> 0b101 @ ui53 : bits(3) @ ui86 : bits(3) @ rs2 : regidx @ 0b10 - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) & extensionEnabled(Ext_C) & extensionEnabled(Ext_D) +mapping clause encdec_compressed = C_FSDSP(ui86 @ ui53, rs2) if extensionEnabled(Ext_Zcd) + <-> 0b101 @ ui53 : bits(3) @ ui86 : bits(3) @ rs2 : regidx @ 0b10 if extensionEnabled(Ext_Zcd) function clause execute (C_FSDSP(uimm, rs2)) = { let imm : bits(12) = zero_extend(uimm @ 0b000); @@ -45,17 +36,15 @@ function clause execute (C_FSDSP(uimm, rs2)) = { } mapping clause assembly = C_FSDSP(uimm, rs2) - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) + if (xlen == 32 | xlen == 64) <-> "c.fsdsp" ^ spc() ^ reg_name(rs2) ^ sep() ^ hex_bits_6(uimm) - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) + if (xlen == 32 | xlen == 64) /* ****************************************************************** */ union clause ast = C_FLD : (bits(5), cregidx, cregidx) -mapping clause encdec_compressed = C_FLD(ui76 @ ui53, rs1, rd) - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) & extensionEnabled(Ext_C) & extensionEnabled(Ext_D) - <-> 0b001 @ ui53 : bits(3) @ rs1 : cregidx @ ui76 : bits(2) @ rd : cregidx @ 0b00 - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) & extensionEnabled(Ext_C) & extensionEnabled(Ext_D) +mapping clause encdec_compressed = C_FLD(ui76 @ ui53, rs1, rd) if extensionEnabled(Ext_Zcd) + <-> 0b001 @ ui53 : bits(3) @ rs1 : cregidx @ ui76 : bits(2) @ rd : cregidx @ 0b00 if extensionEnabled(Ext_Zcd) function clause execute (C_FLD(uimm, rsc, rdc)) = { let imm : bits(12) = zero_extend(uimm @ 0b000); @@ -65,17 +54,15 @@ function clause execute (C_FLD(uimm, rsc, rdc)) = { } mapping clause assembly = C_FLD(uimm, rsc, rdc) - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) + if (xlen == 32 | xlen == 64) <-> "c.fld" ^ spc() ^ creg_name(rdc) ^ sep() ^ creg_name(rsc) ^ sep() ^ hex_bits_8(uimm @ 0b000) - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) + if (xlen == 32 | xlen == 64) /* ****************************************************************** */ union clause ast = C_FSD : (bits(5), cregidx, cregidx) -mapping clause encdec_compressed = C_FSD(ui76 @ ui53, rs1, rs2) - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) & extensionEnabled(Ext_C) & extensionEnabled(Ext_D) - <-> 0b101 @ ui53 : bits(3) @ rs1 : bits(3) @ ui76 : bits(2) @ rs2 : bits(3) @ 0b00 - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) & extensionEnabled(Ext_C) & extensionEnabled(Ext_D) +mapping clause encdec_compressed = C_FSD(ui76 @ ui53, rs1, rs2) if extensionEnabled(Ext_Zcd) + <-> 0b101 @ ui53 : bits(3) @ rs1 : bits(3) @ ui76 : bits(2) @ rs2 : bits(3) @ 0b00 if extensionEnabled(Ext_Zcd) function clause execute (C_FSD(uimm, rsc1, rsc2)) = { let imm : bits(12) = zero_extend(uimm @ 0b000); @@ -85,6 +72,6 @@ function clause execute (C_FSD(uimm, rsc1, rsc2)) = { } mapping clause assembly = C_FSD(uimm, rsc1, rsc2) - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) + if (xlen == 32 | xlen == 64) <-> "c.fsd" ^ spc() ^ creg_name(rsc1) ^ sep() ^ creg_name(rsc2) ^ sep() ^ hex_bits_8(uimm @ 0b000) - if (sizeof(xlen) == 32 | sizeof(xlen) == 64) + if (xlen == 32 | xlen == 64) diff --git a/model/riscv_insts_cfext.sail b/model/riscv_insts_zcf.sail index 976425d..d061c1b 100644 --- a/model/riscv_insts_cfext.sail +++ b/model/riscv_insts_zcf.sail @@ -14,12 +14,14 @@ */ /* ****************************************************************** */ + +enum clause extension = Ext_Zcf +function clause extensionEnabled(Ext_Zcf) = extensionEnabled(Ext_Zca) & extensionEnabled(Ext_F) & xlen == 32 + union clause ast = C_FLWSP : (bits(6), regidx) -mapping clause encdec_compressed = C_FLWSP(ui76 @ ui5 @ ui42, rd) - if sizeof(xlen) == 32 & extensionEnabled(Ext_C) & extensionEnabled(Ext_F) - <-> 0b011 @ ui5 : bits(1) @ rd : regidx @ ui42 : bits(3) @ ui76 : bits(2) @ 0b10 - if sizeof(xlen) == 32 & extensionEnabled(Ext_C) & extensionEnabled(Ext_F) +mapping clause encdec_compressed = C_FLWSP(ui76 @ ui5 @ ui42, rd) if extensionEnabled(Ext_Zcf) + <-> 0b011 @ ui5 : bits(1) @ rd : regidx @ ui42 : bits(3) @ ui76 : bits(2) @ 0b10 if extensionEnabled(Ext_Zcf) function clause execute (C_FLWSP(imm, rd)) = { let imm : bits(12) = zero_extend(imm @ 0b00); @@ -27,17 +29,15 @@ function clause execute (C_FLWSP(imm, rd)) = { } mapping clause assembly = C_FLWSP(imm, rd) - if sizeof(xlen) == 32 + if xlen == 32 <-> "c.flwsp" ^ spc() ^ reg_name(rd) ^ sep() ^ hex_bits_6(imm) - if sizeof(xlen) == 32 + if xlen == 32 /* ****************************************************************** */ union clause ast = C_FSWSP : (bits(6), regidx) -mapping clause encdec_compressed = C_FSWSP(ui76 @ ui52, rs2) - if sizeof(xlen) == 32 & extensionEnabled(Ext_C) & extensionEnabled(Ext_F) - <-> 0b111 @ ui52 : bits(4) @ ui76 : bits(2) @ rs2 : regidx @ 0b10 - if sizeof(xlen) == 32 & extensionEnabled(Ext_C) & extensionEnabled(Ext_F) +mapping clause encdec_compressed = C_FSWSP(ui76 @ ui52, rs2) if extensionEnabled(Ext_Zcf) + <-> 0b111 @ ui52 : bits(4) @ ui76 : bits(2) @ rs2 : regidx @ 0b10 if extensionEnabled(Ext_Zcf) function clause execute (C_FSWSP(uimm, rs2)) = { let imm : bits(12) = zero_extend(uimm @ 0b00); @@ -45,17 +45,15 @@ function clause execute (C_FSWSP(uimm, rs2)) = { } mapping clause assembly = C_FSWSP(uimm, rs2) - if sizeof(xlen) == 32 + if xlen == 32 <-> "c.fswsp" ^ spc() ^ reg_name(rs2) ^ sep() ^ hex_bits_6(uimm) - if sizeof(xlen) == 32 + if xlen == 32 /* ****************************************************************** */ union clause ast = C_FLW : (bits(5), cregidx, cregidx) -mapping clause encdec_compressed = C_FLW(ui6 @ ui53 @ ui2, rs1, rd) - if sizeof(xlen) == 32 & extensionEnabled(Ext_C) & extensionEnabled(Ext_F) - <-> 0b011 @ ui53 : bits(3) @ rs1 : cregidx @ ui2 : bits(1) @ ui6 : bits(1) @ rd : cregidx @ 0b00 - if sizeof(xlen) == 32 & extensionEnabled(Ext_C) & extensionEnabled(Ext_F) +mapping clause encdec_compressed = C_FLW(ui6 @ ui53 @ ui2, rs1, rd) if extensionEnabled(Ext_Zcf) + <-> 0b011 @ ui53 : bits(3) @ rs1 : cregidx @ ui2 : bits(1) @ ui6 : bits(1) @ rd : cregidx @ 0b00 if extensionEnabled(Ext_Zcf) function clause execute (C_FLW(uimm, rsc, rdc)) = { let imm : bits(12) = zero_extend(uimm @ 0b00); @@ -65,17 +63,15 @@ function clause execute (C_FLW(uimm, rsc, rdc)) = { } mapping clause assembly = C_FLW(uimm, rsc, rdc) - if sizeof(xlen) == 32 + if xlen == 32 <-> "c.flw" ^ spc() ^ creg_name(rdc) ^ sep() ^ creg_name(rsc) ^ sep() ^ hex_bits_7(uimm @ 0b00) - if sizeof(xlen) == 32 + if xlen == 32 /* ****************************************************************** */ union clause ast = C_FSW : (bits(5), cregidx, cregidx) -mapping clause encdec_compressed = C_FSW(ui6 @ ui53 @ ui2, rs1, rs2) - if sizeof(xlen) == 32 & extensionEnabled(Ext_C) & extensionEnabled(Ext_F) - <-> 0b111 @ ui53 : bits(3) @ rs1 : cregidx @ ui2 : bits(1) @ ui6 : bits(1) @ rs2 : cregidx @ 0b00 - if sizeof(xlen) == 32 & extensionEnabled(Ext_C) & extensionEnabled(Ext_F) +mapping clause encdec_compressed = C_FSW(ui6 @ ui53 @ ui2, rs1, rs2) if extensionEnabled(Ext_Zcf) + <-> 0b111 @ ui53 : bits(3) @ rs1 : cregidx @ ui2 : bits(1) @ ui6 : bits(1) @ rs2 : cregidx @ 0b00 if extensionEnabled(Ext_Zcf) function clause execute (C_FSW(uimm, rsc1, rsc2)) = { let imm : bits(12) = zero_extend(uimm @ 0b00); @@ -85,6 +81,6 @@ function clause execute (C_FSW(uimm, rsc1, rsc2)) = { } mapping clause assembly = C_FSW(uimm, rsc1, rsc2) - if sizeof(xlen) == 32 + if xlen == 32 <-> "c.fsw" ^ spc() ^ creg_name(rsc1) ^ sep() ^ creg_name(rsc2) ^ sep() ^ hex_bits_7(uimm @ 0b00) - if sizeof(xlen) == 32 + if xlen == 32 diff --git a/model/riscv_insts_zfh.sail b/model/riscv_insts_zfh.sail index 5e55fb8..c9a84e0 100644 --- a/model/riscv_insts_zfh.sail +++ b/model/riscv_insts_zfh.sail @@ -164,8 +164,11 @@ function fle_H (v1, v2, is_quiet) = { /* **************************************************************** */ /* Helper functions for 'encdec()' */ - +// Full half support. function haveHalfFPU() -> bool = extensionEnabled(Ext_Zfh) | extensionEnabled(Ext_Zhinx) +// Support for conversion of halves to/from single & double, but no actual +// calculations with halves. +function haveHalfMin() -> bool = haveHalfFPU() | extensionEnabled(Ext_Zfhmin) /* ****************************************************************** */ /* Floating-point loads */ @@ -538,20 +541,20 @@ mapping clause encdec = <-> 0b110_1010 @ 0b00001 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfFPU() mapping clause encdec = - F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_H_S) if haveHalfFPU() -<-> 0b010_0010 @ 0b00000 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfFPU() + F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_H_S) if haveHalfMin() +<-> 0b010_0010 @ 0b00000 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfMin() mapping clause encdec = - F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_H_D) if haveHalfFPU() -<-> 0b010_0010 @ 0b00001 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfFPU() + F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_H_D) if haveHalfMin() & (haveDoubleFPU() & validDoubleRegs([rs1])) +<-> 0b010_0010 @ 0b00001 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfMin() & (haveDoubleFPU() & validDoubleRegs([rs1])) mapping clause encdec = - F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_S_H) if haveHalfFPU() -<-> 0b010_0000 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfFPU() + F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_S_H) if haveHalfMin() +<-> 0b010_0000 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfMin() mapping clause encdec = - F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_D_H) if haveHalfFPU() -<-> 0b010_0001 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfFPU() + F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_D_H) if haveHalfMin() & (haveDoubleFPU() & validDoubleRegs([rd])) +<-> 0b010_0001 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfMin() & (haveDoubleFPU() & validDoubleRegs([rd])) // TODO: /* FCVT_H_Q, FCVT_Q_H : Will be added with Q Extension */ @@ -559,20 +562,20 @@ mapping clause encdec = /* F instructions, RV64 only */ mapping clause encdec = - F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_L_H) if haveHalfFPU() & sizeof(xlen) >= 64 -<-> 0b110_0010 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfFPU() & sizeof(xlen) >= 64 + F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_L_H) if haveHalfFPU() & xlen >= 64 +<-> 0b110_0010 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfFPU() & xlen >= 64 mapping clause encdec = - F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_LU_H) if haveHalfFPU() & sizeof(xlen) >= 64 -<-> 0b110_0010 @ 0b00011 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfFPU() & sizeof(xlen) >= 64 + F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_LU_H) if haveHalfFPU() & xlen >= 64 +<-> 0b110_0010 @ 0b00011 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfFPU() & xlen >= 64 mapping clause encdec = - F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_H_L) if haveHalfFPU() & sizeof(xlen) >= 64 -<-> 0b110_1010 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfFPU() & sizeof(xlen) >= 64 + F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_H_L) if haveHalfFPU() & xlen >= 64 +<-> 0b110_1010 @ 0b00010 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfFPU() & xlen >= 64 mapping clause encdec = - F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_H_LU) if haveHalfFPU() & sizeof(xlen) >= 64 -<-> 0b110_1010 @ 0b00011 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfFPU() & sizeof(xlen) >= 64 + F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_H_LU) if haveHalfFPU() & xlen >= 64 +<-> 0b110_1010 @ 0b00011 @ rs1 @ encdec_rounding_mode (rm) @ rd @ 0b101_0011 if haveHalfFPU() & xlen >= 64 /* Execution semantics ================================ */ @@ -713,7 +716,7 @@ function clause execute (F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_D_H)) = { } function clause execute (F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_L_H)) = { - assert(sizeof(xlen) >= 64); + assert(xlen >= 64); let rs1_val_H = F_or_X_H(rs1); match (select_instr_or_fcsr_rm (rm)) { None() => { handle_illegal(); RETIRE_FAIL }, @@ -729,7 +732,7 @@ function clause execute (F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_L_H)) = { } function clause execute (F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_LU_H)) = { - assert(sizeof(xlen) >= 64); + assert(xlen >= 64); let rs1_val_H = F_or_X_H(rs1); match (select_instr_or_fcsr_rm (rm)) { None() => { handle_illegal(); RETIRE_FAIL }, @@ -745,7 +748,7 @@ function clause execute (F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_LU_H)) = { } function clause execute (F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_H_L)) = { - assert(sizeof(xlen) >= 64); + assert(xlen >= 64); let rs1_val_L = X(rs1)[63..0]; match (select_instr_or_fcsr_rm (rm)) { None() => { handle_illegal(); RETIRE_FAIL }, @@ -761,7 +764,7 @@ function clause execute (F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_H_L)) = { } function clause execute (F_UN_RM_TYPE_H(rs1, rm, rd, FCVT_H_LU)) = { - assert(sizeof(xlen) >= 64); + assert(xlen >= 64); let rs1_val_LU = X(rs1)[63..0]; match (select_instr_or_fcsr_rm (rm)) { None() => { handle_illegal(); RETIRE_FAIL }, @@ -884,11 +887,11 @@ union clause ast = F_UN_TYPE_H : (regidx, regidx, f_un_op_H) mapping clause encdec = F_UN_TYPE_H(rs1, rd, FCLASS_H) if haveHalfFPU() <-> 0b111_0010 @ 0b00000 @ rs1 @ 0b001 @ rd @ 0b101_0011 if haveHalfFPU() -mapping clause encdec = F_UN_TYPE_H(rs1, rd, FMV_X_H) if extensionEnabled(Ext_Zfh) - <-> 0b111_0010 @ 0b00000 @ rs1 @ 0b000 @ rd @ 0b101_0011 if extensionEnabled(Ext_Zfh) +mapping clause encdec = F_UN_TYPE_H(rs1, rd, FMV_X_H) if extensionEnabled(Ext_Zfhmin) + <-> 0b111_0010 @ 0b00000 @ rs1 @ 0b000 @ rd @ 0b101_0011 if extensionEnabled(Ext_Zfhmin) -mapping clause encdec = F_UN_TYPE_H(rs1, rd, FMV_H_X) if extensionEnabled(Ext_Zfh) - <-> 0b111_1010 @ 0b00000 @ rs1 @ 0b000 @ rd @ 0b101_0011 if extensionEnabled(Ext_Zfh) +mapping clause encdec = F_UN_TYPE_H(rs1, rd, FMV_H_X) if extensionEnabled(Ext_Zfhmin) + <-> 0b111_1010 @ 0b00000 @ rs1 @ 0b000 @ rd @ 0b101_0011 if extensionEnabled(Ext_Zfhmin) /* Execution semantics ================================ */ diff --git a/model/riscv_insts_zicbom.sail b/model/riscv_insts_zicbom.sail new file mode 100644 index 0000000..a8fdd8b --- /dev/null +++ b/model/riscv_insts_zicbom.sail @@ -0,0 +1,114 @@ +/*=======================================================================================*/ +/* This Sail RISC-V architecture model, comprising all files and */ +/* directories except where otherwise noted is subject the BSD */ +/* two-clause license in the LICENSE file. */ +/* */ +/* SPDX-License-Identifier: BSD-2-Clause */ +/*=======================================================================================*/ + +// Cache Block Operations - Management + +enum clause extension = Ext_Zicbom +function clause extensionEnabled(Ext_Zicbom) = sys_enable_zicbom() + +function cbo_clean_flush_enabled(p : Privilege) -> bool = feature_enabled_for_priv(p, menvcfg[CBCFE][0], senvcfg[CBCFE][0]) +function cbo_inval_enabled(p : Privilege) -> bool = feature_enabled_for_priv(p, menvcfg[CBIE][0], senvcfg[CBIE][0]) +function cbo_inval_as_inval(p : Privilege) -> bool = feature_enabled_for_priv(p, menvcfg[CBIE][1], senvcfg[CBIE][1]) + +/* ****************************************************************** */ +union clause ast = RISCV_ZICBOM : (cbop_zicbom, regidx) + +mapping encdec_cbop : cbop_zicbom <-> bits(12) = { + CBO_CLEAN <-> 0b000000000001, + CBO_FLUSH <-> 0b000000000010, + CBO_INVAL <-> 0b000000000000, +} + +mapping clause encdec = RISCV_ZICBOM(cbop, rs1) if extensionEnabled(Ext_Zicbom) + <-> encdec_cbop(cbop) @ rs1 @ 0b010 @ 0b00000 @ 0b0001111 if extensionEnabled(Ext_Zicbom) + +mapping cbop_mnemonic : cbop_zicbom <-> string = { + CBO_CLEAN <-> "cbo.clean", + CBO_FLUSH <-> "cbo.flush", + CBO_INVAL <-> "cbo.inval" +} + +mapping clause assembly = RISCV_ZICBOM(cbop, rs1) + <-> cbop_mnemonic(cbop) ^ spc() ^ "(" ^ opt_spc() ^ reg_name(rs1) ^ opt_spc() ^ ")" + +val process_clean_inval : (regidx, cbop_zicbom) -> Retired +function process_clean_inval(rs1, cbop) = { + let rs1_val = X(rs1); + let cache_block_size_exp = plat_cache_block_size_exp(); + let cache_block_size = 2 ^ cache_block_size_exp; + + // Offset from rs1 to the beginning of the cache block. This is 0 if rs1 + // is aligned to the cache block, or negative if rs1 is misaligned. + let offset = (rs1_val & ~(zero_extend(ones(cache_block_size_exp)))) - rs1_val; + + // TODO: This is incorrect since CHERI only requires at least one byte + // to be in bounds here, whereas `ext_data_get_addr()` checks that all bytes + // are in bounds. We will need to add a new function, parameter or access type. + match ext_data_get_addr(rs1, offset, Read(Data), cache_block_size) { + Ext_DataAddr_Error(e) => { ext_handle_data_check_error(e); RETIRE_FAIL }, + Ext_DataAddr_OK(vaddr) => { + let res: option(ExceptionType) = match translateAddr(vaddr, Read(Data)) { + TR_Address(paddr, _) => { + // "A cache-block management instruction is permitted to access the + // specified cache block whenever a load instruction or store instruction + // is permitted to access the corresponding physical addresses. If + // neither a load instruction nor store instruction is permitted to + // access the physical addresses, but an instruction fetch is permitted + // to access the physical addresses, whether a cache-block management + // instruction is permitted to access the cache block is UNSPECIFIED." + // + // In this implementation we currently don't allow access for fetches. + let exc_read = phys_access_check(Read(Data), cur_privilege, paddr, cache_block_size); + let exc_write = phys_access_check(Write(Data), cur_privilege, paddr, cache_block_size); + match (exc_read, exc_write) { + // Access is permitted if read OR write are allowed. If neither + // are allowed then we always report a store exception. + (Some(exc_read), Some(exc_write)) => Some(exc_write), + _ => None(), + } + }, + TR_Failure(e, _) => Some(e) + }; + // "If access to the cache block is not permitted, a cache-block management + // instruction raises a store page fault or store guest-page fault exception + // if address translation does not permit any access or raises a store access + // fault exception otherwise." + match res { + // The model has no caches so there's no action required. + None() => RETIRE_SUCCESS, + Some(e) => { + let e : ExceptionType = match e { + E_Load_Access_Fault() => E_SAMO_Access_Fault(), + E_SAMO_Access_Fault() => E_SAMO_Access_Fault(), + E_Load_Page_Fault() => E_SAMO_Page_Fault(), + E_SAMO_Page_Fault() => E_SAMO_Page_Fault(), + // No other exceptions should be generated since we're not checking + // for fetch access and it's can't be misaligned. + _ => internal_error(__FILE__, __LINE__, "unexpected exception for cmo.clean/inval"), + }; + handle_mem_exception(vaddr, e); + RETIRE_FAIL + } + } + } + } +} + +function clause execute(RISCV_ZICBOM(cbop, rs1)) = + match cbop { + CBO_CLEAN if cbo_clean_flush_enabled(cur_privilege) => + process_clean_inval(rs1, cbop), + CBO_FLUSH if cbo_clean_flush_enabled(cur_privilege) => + process_clean_inval(rs1, cbop), + CBO_INVAL if cbo_inval_enabled(cur_privilege) => + process_clean_inval(rs1, if cbo_inval_as_inval(cur_privilege) then CBO_INVAL else CBO_FLUSH), + _ => { + handle_illegal(); + RETIRE_FAIL + }, + } diff --git a/model/riscv_insts_zicboz.sail b/model/riscv_insts_zicboz.sail new file mode 100644 index 0000000..abf18dc --- /dev/null +++ b/model/riscv_insts_zicboz.sail @@ -0,0 +1,65 @@ +/*=======================================================================================*/ +/* This Sail RISC-V architecture model, comprising all files and */ +/* directories except where otherwise noted is subject the BSD */ +/* two-clause license in the LICENSE file. */ +/* */ +/* SPDX-License-Identifier: BSD-2-Clause */ +/*=======================================================================================*/ + +// Cache Block Operations - Zero + +enum clause extension = Ext_Zicboz +function clause extensionEnabled(Ext_Zicboz) = sys_enable_zicboz() + +function cbo_zero_enabled(p : Privilege) -> bool = feature_enabled_for_priv(p, menvcfg[CBZE][0], senvcfg[CBZE][0]) + +/* ****************************************************************** */ +union clause ast = RISCV_ZICBOZ : (regidx) + +mapping clause encdec = RISCV_ZICBOZ(rs1) if extensionEnabled(Ext_Zicboz) + <-> 0b000000000100 @ rs1 @ 0b010 @ 0b00000 @ 0b0001111 if extensionEnabled(Ext_Zicboz) + +mapping clause assembly = RISCV_ZICBOZ(rs1) + <-> "cbo.zero" ^ spc() ^ "(" ^ opt_spc() ^ reg_name(rs1) ^ opt_spc() ^ ")" + +function clause execute(RISCV_ZICBOZ(rs1)) = { + if cbo_zero_enabled(cur_privilege) then { + let rs1_val = X(rs1); + let cache_block_size_exp = plat_cache_block_size_exp(); + let cache_block_size = 2 ^ cache_block_size_exp; + + // Offset from rs1 to the beginning of the cache block. This is 0 if rs1 + // is aligned to the cache block, or negative if rs1 is misaligned. + let offset = (rs1_val & ~(zero_extend(ones(cache_block_size_exp)))) - rs1_val; + + match ext_data_get_addr(rs1, offset, Write(Data), cache_block_size) { + Ext_DataAddr_Error(e) => { ext_handle_data_check_error(e); RETIRE_FAIL }, + Ext_DataAddr_OK(vaddr) => { + // "An implementation may update the bytes in any order and with any granularity + // and atomicity, including individual bytes." + // + // This implementation does a single atomic write. + match translateAddr(vaddr, Write(Data)) { + TR_Failure(e, _) => { handle_mem_exception(vaddr, e); RETIRE_FAIL }, + TR_Address(paddr, _) => { + let eares : MemoryOpResult(unit) = mem_write_ea(paddr, cache_block_size, false, false, false); + match (eares) { + MemException(e) => { handle_mem_exception(vaddr, e); RETIRE_FAIL }, + MemValue(_) => { + let res : MemoryOpResult(bool) = mem_write_value(paddr, cache_block_size, zeros(), false, false, false); + match (res) { + MemValue(true) => RETIRE_SUCCESS, + MemValue(false) => internal_error(__FILE__, __LINE__, "store got false from mem_write_value"), + MemException(e) => { handle_mem_exception(vaddr, e); RETIRE_FAIL } + } + } + } + } + } + }, + } + } else { + handle_illegal(); + RETIRE_FAIL + } +} diff --git a/model/riscv_insts_zicsr.sail b/model/riscv_insts_zicsr.sail index f2980fb..5e4d47b 100644 --- a/model/riscv_insts_zicsr.sail +++ b/model/riscv_insts_zicsr.sail @@ -21,175 +21,158 @@ mapping encdec_csrop : csrop <-> bits(2) = { mapping clause encdec = CSR(csr, rs1, rd, is_imm, op) <-> csr @ rs1 @ bool_bits(is_imm) @ encdec_csrop(op) @ rd @ 0b1110011 -function readCSR csr : csreg -> xlenbits = { - let res : xlenbits = - match (csr, sizeof(xlen)) { - /* machine mode */ - (0xF11, _) => zero_extend(mvendorid), - (0xF12, _) => marchid, - (0xF13, _) => mimpid, - (0xF14, _) => mhartid, - (0xF15, _) => mconfigptr, - (0x300, _) => mstatus.bits, - (0x301, _) => misa.bits, - (0x302, _) => medeleg.bits, - (0x303, _) => mideleg.bits, - (0x304, _) => mie.bits, - (0x305, _) => get_mtvec(), - (0x306, _) => zero_extend(mcounteren.bits), - (0x30A, _) => menvcfg.bits[sizeof(xlen) - 1 .. 0], - (0x310, 32) => mstatush.bits, - (0x31A, 32) => menvcfg.bits[63 .. 32], - (0x320, _) => zero_extend(mcountinhibit.bits), - - (0x340, _) => mscratch, - (0x341, _) => get_xret_target(Machine) & pc_alignment_mask(), - (0x342, _) => mcause.bits, - (0x343, _) => mtval, - (0x344, _) => mip.bits, - - // pmpcfgN - (0x3A @ idx : bits(4), _) if idx[0] == bitzero | sizeof(xlen) == 32 => pmpReadCfgReg(unsigned(idx)), - // pmpaddrN. Unfortunately the PMP index does not nicely align with the CSR index bits. - (0x3B @ idx : bits(4), _) => pmpReadAddrReg(unsigned(0b00 @ idx)), - (0x3C @ idx : bits(4), _) => pmpReadAddrReg(unsigned(0b01 @ idx)), - (0x3D @ idx : bits(4), _) => pmpReadAddrReg(unsigned(0b10 @ idx)), - (0x3E @ idx : bits(4), _) => pmpReadAddrReg(unsigned(0b11 @ idx)), - - /* machine mode counters */ - (0xB00, _) => mcycle[(sizeof(xlen) - 1) .. 0], - (0xB02, _) => minstret[(sizeof(xlen) - 1) .. 0], - (0xB80, 32) => mcycle[63 .. 32], - (0xB82, 32) => minstret[63 .. 32], - - /* vector */ - (0x008, _) => zero_extend(vstart), - (0x009, _) => zero_extend(vxsat), - (0x00A, _) => zero_extend(vxrm), - (0x00F, _) => zero_extend(vcsr.bits), - (0xC20, _) => vl, - (0xC21, _) => vtype.bits, - (0xC22, _) => vlenb, - - /* trigger/debug */ - (0x7a0, _) => ~(tselect), /* this indicates we don't have any trigger support */ - - /* supervisor mode */ - (0x100, _) => lower_mstatus(mstatus).bits, - (0x102, _) => sedeleg.bits, - (0x103, _) => sideleg.bits, - (0x104, _) => lower_mie(mie, mideleg).bits, - (0x105, _) => get_stvec(), - (0x106, _) => zero_extend(scounteren.bits), - (0x10A, _) => senvcfg.bits[sizeof(xlen) - 1 .. 0], - (0x140, _) => sscratch, - (0x141, _) => get_xret_target(Supervisor) & pc_alignment_mask(), - (0x142, _) => scause.bits, - (0x143, _) => stval, - (0x144, _) => lower_mip(mip, mideleg).bits, - (0x180, _) => satp, - - /* user mode counters */ - (0xC00, _) => mcycle[(sizeof(xlen) - 1) .. 0], - (0xC01, _) => mtime[(sizeof(xlen) - 1) .. 0], - (0xC02, _) => minstret[(sizeof(xlen) - 1) .. 0], - (0xC80, 32) => mcycle[63 .. 32], - (0xC81, 32) => mtime[63 .. 32], - (0xC82, 32) => minstret[63 .. 32], - - /* user mode: Zkr */ - (0x015, _) => read_seed_csr(), - - _ => /* check extensions */ - match ext_read_CSR(csr) { - Some(res) => res, - None() => { print_bits("unhandled read to CSR ", csr); - zero_extend(0x0) } - } - }; - if get_config_print_reg() - then print_reg("CSR " ^ to_str(csr) ^ " -> " ^ BitStr(res)); - res +// TODO: These read/write_CSR definitions should be moved to the files +// corresponding to their extensions rather than all be here. + +/* machine mode */ +function clause read_CSR(0xF11) = zero_extend(mvendorid) +function clause read_CSR(0xF12) = marchid +function clause read_CSR(0xF13) = mimpid +function clause read_CSR(0xF14) = mhartid +function clause read_CSR(0xF15) = mconfigptr +function clause read_CSR(0x300) = mstatus.bits +function clause read_CSR(0x301) = misa.bits +function clause read_CSR(0x302) = medeleg.bits +function clause read_CSR(0x303) = mideleg.bits +function clause read_CSR(0x304) = mie.bits +function clause read_CSR(0x305) = get_mtvec() +function clause read_CSR(0x306) = zero_extend(mcounteren.bits) +function clause read_CSR(0x30A) = menvcfg.bits[xlen - 1 .. 0] +function clause read_CSR(0x310 if xlen == 32) = mstatush.bits +function clause read_CSR(0x31A if xlen == 32) = menvcfg.bits[63 .. 32] +function clause read_CSR(0x320) = zero_extend(mcountinhibit.bits) + +/* Hardware Performance Monitoring event selection */ +function clause read_CSR(0b0011001 /* 0x320 */ @ index : bits(5) if unsigned(index) >= 3) = read_mhpmevent(hpmidx_from_bits(index)) + +function clause read_CSR(0x340) = mscratch +function clause read_CSR(0x341) = get_xret_target(Machine) & pc_alignment_mask() +function clause read_CSR(0x342) = mcause.bits +function clause read_CSR(0x343) = mtval +function clause read_CSR(0x344) = mip.bits + +// pmpcfgN +function clause read_CSR(0x3A @ idx : bits(4) if idx[0] == bitzero | xlen == 32) = pmpReadCfgReg(unsigned(idx)) +// pmpaddrN. Unfortunately the PMP index does not nicely align with the CSR index bits. +function clause read_CSR(0x3B @ idx : bits(4)) = pmpReadAddrReg(unsigned(0b00 @ idx)) +function clause read_CSR(0x3C @ idx : bits(4)) = pmpReadAddrReg(unsigned(0b01 @ idx)) +function clause read_CSR(0x3D @ idx : bits(4)) = pmpReadAddrReg(unsigned(0b10 @ idx)) +function clause read_CSR(0x3E @ idx : bits(4)) = pmpReadAddrReg(unsigned(0b11 @ idx)) + +/* machine mode counters */ +function clause read_CSR(0xB00) = mcycle[(xlen - 1) .. 0] +function clause read_CSR(0xB02) = minstret[(xlen - 1) .. 0] +function clause read_CSR(0xB80 if xlen == 32)= mcycle[63 .. 32] +function clause read_CSR(0xB82 if xlen == 32) = minstret[63 .. 32] + +/* Hardware Performance Monitoring machine mode counters */ +function clause read_CSR(0b1011000 /* 0xB00 */ @ index : bits(5) if unsigned(index) >= 3) = read_mhpmcounter(hpmidx_from_bits(index)) +function clause read_CSR(0b1011100 /* 0xB80 */ @ index : bits(5) if xlen == 32 & unsigned(index) >= 3) = read_mhpmcounterh(hpmidx_from_bits(index)) + +/* trigger/debug */ +function clause read_CSR(0x7a0) = ~(tselect) /* this indicates we don't have any trigger support */ + +/* supervisor mode */ +function clause read_CSR(0x100) = lower_mstatus(mstatus).bits +function clause read_CSR(0x104) = lower_mie(mie, mideleg).bits +function clause read_CSR(0x105) = get_stvec() +function clause read_CSR(0x106) = zero_extend(scounteren.bits) +function clause read_CSR(0x10A) = senvcfg.bits[xlen - 1 .. 0] +function clause read_CSR(0x140) = sscratch +function clause read_CSR(0x141) = get_xret_target(Supervisor) & pc_alignment_mask() +function clause read_CSR(0x142) = scause.bits +function clause read_CSR(0x143) = stval +function clause read_CSR(0x144) = lower_mip(mip, mideleg).bits +function clause read_CSR(0x180) = satp + +/* user mode counters */ +function clause read_CSR(0xC00) = mcycle[(xlen - 1) .. 0] +function clause read_CSR(0xC01) = mtime[(xlen - 1) .. 0] +function clause read_CSR(0xC02) = minstret[(xlen - 1) .. 0] +function clause read_CSR(0xC80 if xlen == 32) = mcycle[63 .. 32] +function clause read_CSR(0xC81 if xlen == 32) = mtime[63 .. 32] +function clause read_CSR(0xC82 if xlen == 32) = minstret[63 .. 32] + +/* Hardware Performance Monitoring user mode counters */ +function clause read_CSR(0b1100000 /* 0xC00 */ @ index : bits(5) if unsigned(index) >= 3) = read_mhpmcounter(hpmidx_from_bits(index)) +function clause read_CSR(0b1100100 /* 0xC80 */ @ index : bits(5) if xlen == 32 & unsigned(index) >= 3) = read_mhpmcounterh(hpmidx_from_bits(index)) + +/* user mode: Zkr */ +function clause read_CSR(0x015) = read_seed_csr() + +/* machine mode */ +function clause write_CSR(0x300, value) = { mstatus = legalize_mstatus(mstatus, value); mstatus.bits } +function clause write_CSR(0x301, value) = { misa = legalize_misa(misa, value); misa.bits } +function clause write_CSR(0x302, value) = { medeleg = legalize_medeleg(medeleg, value); medeleg.bits } +function clause write_CSR(0x303, value) = { mideleg = legalize_mideleg(mideleg, value); mideleg.bits } +function clause write_CSR(0x304, value) = { mie = legalize_mie(mie, value); mie.bits } +function clause write_CSR(0x305, value) = { set_mtvec(value) } +function clause write_CSR(0x306, value) = { mcounteren = legalize_mcounteren(mcounteren, value); zero_extend(mcounteren.bits) } +function clause write_CSR((0x30A, value) if xlen == 32) = { menvcfg = legalize_menvcfg(menvcfg, menvcfg.bits[63 .. 32] @ value); menvcfg.bits[31 .. 0] } +function clause write_CSR((0x30A, value) if xlen == 64) = { menvcfg = legalize_menvcfg(menvcfg, value); menvcfg.bits } +function clause write_CSR((0x310, value) if xlen == 32) = { mstatush.bits } // ignore writes for now +function clause write_CSR((0x31A, value) if xlen == 32) = { menvcfg = legalize_menvcfg(menvcfg, value @ menvcfg.bits[31 .. 0]); menvcfg.bits[63 .. 32] } +function clause write_CSR(0x320, value) = { mcountinhibit = legalize_mcountinhibit(mcountinhibit, value); zero_extend(mcountinhibit.bits) } +function clause write_CSR(0x340, value) = { mscratch = value; mscratch } +function clause write_CSR(0x341, value) = { set_xret_target(Machine, value) } +function clause write_CSR(0x342, value) = { mcause.bits = value; mcause.bits } +function clause write_CSR(0x343, value) = { mtval = value; mtval } +function clause write_CSR(0x344, value) = { mip = legalize_mip(mip, value); mip.bits } + +// pmpcfgN +function clause write_CSR((0x3A @ idx : bits(4), value) if idx[0] == bitzero | xlen == 32) = { + let idx = unsigned(idx); + pmpWriteCfgReg(idx, value); + pmpReadCfgReg(idx) } -function writeCSR (csr : csreg, value : xlenbits) -> unit = { - let res : option(xlenbits) = - match (csr, sizeof(xlen)) { - /* machine mode */ - (0x300, _) => { mstatus = legalize_mstatus(mstatus, value); Some(mstatus.bits) }, - (0x301, _) => { misa = legalize_misa(misa, value); Some(misa.bits) }, - (0x302, _) => { medeleg = legalize_medeleg(medeleg, value); Some(medeleg.bits) }, - (0x303, _) => { mideleg = legalize_mideleg(mideleg, value); Some(mideleg.bits) }, - (0x304, _) => { mie = legalize_mie(mie, value); Some(mie.bits) }, - (0x305, _) => { Some(set_mtvec(value)) }, - (0x306, _) => { mcounteren = legalize_mcounteren(mcounteren, value); Some(zero_extend(mcounteren.bits)) }, - (0x30A, 32) => { menvcfg = legalize_menvcfg(menvcfg, menvcfg.bits[63 .. 32] @ value); Some(menvcfg.bits[31 .. 0]) }, - (0x30A, 64) => { menvcfg = legalize_menvcfg(menvcfg, value); Some(menvcfg.bits) }, - (0x310, 32) => { Some(mstatush.bits) }, // ignore writes for now - (0x31A, 32) => { menvcfg = legalize_menvcfg(menvcfg, value @ menvcfg.bits[31 .. 0]); Some(menvcfg.bits[63 .. 32]) }, - (0x320, _) => { mcountinhibit = legalize_mcountinhibit(mcountinhibit, value); Some(zero_extend(mcountinhibit.bits)) }, - (0x340, _) => { mscratch = value; Some(mscratch) }, - (0x341, _) => { Some(set_xret_target(Machine, value)) }, - (0x342, _) => { mcause.bits = value; Some(mcause.bits) }, - (0x343, _) => { mtval = value; Some(mtval) }, - (0x344, _) => { mip = legalize_mip(mip, value); Some(mip.bits) }, - - // pmpcfgN - (0x3A @ idx : bits(4), _) if idx[0] == bitzero | sizeof(xlen) == 32 => { - let idx = unsigned(idx); - pmpWriteCfgReg(idx, value); Some(pmpReadCfgReg(idx)) - }, - - // pmpaddrN. Unfortunately the PMP index does not nicely align with the CSR index bits. - (0x3B @ idx : bits(4), _) => { let idx = unsigned(0b00 @ idx); pmpWriteAddrReg(idx, value); Some(pmpReadAddrReg(idx)) }, - (0x3C @ idx : bits(4), _) => { let idx = unsigned(0b01 @ idx); pmpWriteAddrReg(idx, value); Some(pmpReadAddrReg(idx)) }, - (0x3D @ idx : bits(4), _) => { let idx = unsigned(0b10 @ idx); pmpWriteAddrReg(idx, value); Some(pmpReadAddrReg(idx)) }, - (0x3E @ idx : bits(4), _) => { let idx = unsigned(0b11 @ idx); pmpWriteAddrReg(idx, value); Some(pmpReadAddrReg(idx)) }, - - /* machine mode counters */ - (0xB00, _) => { mcycle[(sizeof(xlen) - 1) .. 0] = value; Some(value) }, - (0xB02, _) => { minstret[(sizeof(xlen) - 1) .. 0] = value; minstret_increment = false; Some(value) }, - (0xB80, 32) => { mcycle[63 .. 32] = value; Some(value) }, - (0xB82, 32) => { minstret[63 .. 32] = value; minstret_increment = false; Some(value) }, - - /* trigger/debug */ - (0x7a0, _) => { tselect = value; Some(tselect) }, - - /* supervisor mode */ - (0x100, _) => { mstatus = legalize_sstatus(mstatus, value); Some(mstatus.bits) }, - (0x102, _) => { sedeleg = legalize_sedeleg(sedeleg, value); Some(sedeleg.bits) }, - (0x103, _) => { sideleg.bits = value; Some(sideleg.bits) }, /* TODO: does this need legalization? */ - (0x104, _) => { mie = legalize_sie(mie, mideleg, value); Some(mie.bits) }, - (0x105, _) => { Some(set_stvec(value)) }, - (0x106, _) => { scounteren = legalize_scounteren(scounteren, value); Some(zero_extend(scounteren.bits)) }, - (0x10A, _) => { senvcfg = legalize_senvcfg(senvcfg, zero_extend(value)); Some(senvcfg.bits[sizeof(xlen) - 1 .. 0]) }, - (0x140, _) => { sscratch = value; Some(sscratch) }, - (0x141, _) => { Some(set_xret_target(Supervisor, value)) }, - (0x142, _) => { scause.bits = value; Some(scause.bits) }, - (0x143, _) => { stval = value; Some(stval) }, - (0x144, _) => { mip = legalize_sip(mip, mideleg, value); Some(mip.bits) }, - (0x180, _) => { satp = legalize_satp(cur_Architecture(), satp, value); Some(satp) }, - - /* user mode: seed (entropy source). writes are ignored */ - (0x015, _) => write_seed_csr(), - - /* vector */ - (0x008, _) => { let vstart_length = get_vlen_pow(); vstart = zero_extend(16, value[(vstart_length - 1) .. 0]); Some(zero_extend(vstart)) }, - (0x009, _) => { vxsat = value[0 .. 0]; Some(zero_extend(vxsat)) }, - (0x00A, _) => { vxrm = value[1 .. 0]; Some(zero_extend(vxrm)) }, - (0x00F, _) => { vcsr.bits = value[2 ..0]; Some(zero_extend(vcsr.bits)) }, - (0xC20, _) => { vl = value; Some(vl) }, - (0xC21, _) => { vtype.bits = value; Some(vtype.bits) }, - (0xC22, _) => { vlenb = value; Some(vlenb) }, - - _ => ext_write_CSR(csr, value) - }; - match res { - Some(v) => if get_config_print_reg() - then print_reg("CSR " ^ to_str(csr) ^ " <- " ^ BitStr(v) ^ " (input: " ^ BitStr(value) ^ ")"), - None() => print_bits("unhandled write to CSR ", csr) - } +// pmpaddrN. Unfortunately the PMP index does not nicely align with the CSR index bits. +function clause write_CSR(0x3B @ idx : bits(4), value) = { let idx = unsigned(0b00 @ idx); pmpWriteAddrReg(idx, value); pmpReadAddrReg(idx) } +function clause write_CSR(0x3C @ idx : bits(4), value) = { let idx = unsigned(0b01 @ idx); pmpWriteAddrReg(idx, value); pmpReadAddrReg(idx) } +function clause write_CSR(0x3D @ idx : bits(4), value) = { let idx = unsigned(0b10 @ idx); pmpWriteAddrReg(idx, value); pmpReadAddrReg(idx) } +function clause write_CSR(0x3E @ idx : bits(4), value) = { let idx = unsigned(0b11 @ idx); pmpWriteAddrReg(idx, value); pmpReadAddrReg(idx) } + +/* machine mode counters */ +function clause write_CSR(0xB00, value) = { mcycle[(xlen - 1) .. 0] = value; value } +function clause write_CSR(0xB02, value) = { minstret[(xlen - 1) .. 0] = value; minstret_increment = false; value } +function clause write_CSR((0xB80, value) if xlen == 32) = { mcycle[63 .. 32] = value; value } +function clause write_CSR((0xB82, value) if xlen == 32) = { minstret[63 .. 32] = value; minstret_increment = false; value } + +/* Hardware Performance Monitoring machine mode counters */ +function clause write_CSR((0b0011001 /* 0x320 */ @ index : bits(5), value) if unsigned(index) >= 3) = { + let index = hpmidx_from_bits(index); + write_mhpmevent(index, value); + read_mhpmevent(index) } +function clause write_CSR((0b1011000 /* 0xB00 */ @ index : bits(5), value) if unsigned(index) >= 3) = { + let index = hpmidx_from_bits(index); + write_mhpmcounter(index, value); + read_mhpmcounter(index) +} +function clause write_CSR((0b1011100 /* 0xB80 */ @ index : bits(5), value) if xlen == 32 & unsigned(index) >= 3) = { + let index = hpmidx_from_bits(index); + write_mhpmcounterh(index, value); + read_mhpmcounterh(index) +} + +/* trigger/debug */ +function clause write_CSR(0x7a0, value) = { tselect = value; tselect } + +/* supervisor mode */ +function clause write_CSR(0x100, value) = { mstatus = legalize_sstatus(mstatus, value); mstatus.bits } +function clause write_CSR(0x104, value) = { mie = legalize_sie(mie, mideleg, value); mie.bits } +function clause write_CSR(0x105, value) = { set_stvec(value) } +function clause write_CSR(0x106, value) = { scounteren = legalize_scounteren(scounteren, value); zero_extend(scounteren.bits) } +function clause write_CSR(0x10A, value) = { senvcfg = legalize_senvcfg(senvcfg, zero_extend(value)); senvcfg.bits[xlen - 1 .. 0] } +function clause write_CSR(0x140, value) = { sscratch = value; sscratch } +function clause write_CSR(0x141, value) = { set_xret_target(Supervisor, value) } +function clause write_CSR(0x142, value) = { scause.bits = value; scause.bits } +function clause write_CSR(0x143, value) = { stval = value; stval } +function clause write_CSR(0x144, value) = { mip = legalize_sip(mip, mideleg, value); mip.bits } +function clause write_CSR(0x180, value) = { satp = legalize_satp(cur_Architecture(), satp, value); satp } + +/* user mode: seed (entropy source). writes are ignored */ +function clause write_CSR(0x015, value) = write_seed_csr() function clause execute CSR(csr, rs1, rd, is_imm, op) = { let rs1_val : xlenbits = if is_imm then zero_extend(rs1) else X(rs1); @@ -202,14 +185,19 @@ function clause execute CSR(csr, rs1, rd, is_imm, op) = { else if not(ext_check_CSR(csr, cur_privilege, isWrite)) then { ext_check_CSR_fail(); RETIRE_FAIL } else { - let csr_val = readCSR(csr); /* could have side-effects, so technically shouldn't perform for CSRW[I] with rd == 0 */ + let csr_val = read_CSR(csr); /* could have side-effects, so technically shouldn't perform for CSRW[I] with rd == 0 */ if isWrite then { let new_val : xlenbits = match op { CSRRW => rs1_val, CSRRS => csr_val | rs1_val, CSRRC => csr_val & ~(rs1_val) }; - writeCSR(csr, new_val) + let final_val = write_CSR(csr, new_val); + if get_config_print_reg() + then print_reg("CSR " ^ to_str(csr) ^ " <- " ^ bits_str(final_val) ^ " (input: " ^ bits_str(new_val) ^ ")") + } else { + if get_config_print_reg() + then print_reg("CSR " ^ to_str(csr) ^ " -> " ^ bits_str(csr_val)); }; X(rd) = csr_val; RETIRE_SUCCESS diff --git a/model/riscv_insts_next.sail b/model/riscv_insts_zifencei.sail index 52d8bc2..7e7e607 100644 --- a/model/riscv_insts_next.sail +++ b/model/riscv_insts_zifencei.sail @@ -6,21 +6,19 @@ /* SPDX-License-Identifier: BSD-2-Clause */ /*=======================================================================================*/ -/* *****************************************************************/ -/* This file specifies the instruction added by the 'N' extension. */ +/* ****************************************************************** */ +/* This file specifies the instructions in the 'Zifencei' extension. */ -union clause ast = URET : unit +/* ****************************************************************** */ +enum clause extension = Ext_Zifencei +function clause extensionEnabled(Ext_Zifencei) = true -mapping clause encdec = URET() - <-> 0b0000000 @ 0b00010 @ 0b00000 @ 0b000 @ 0b00000 @ 0b1110011 +union clause ast = FENCEI : unit -function clause execute URET() = { - if not(extensionEnabled(Ext_U)) | not(sys_enable_next()) - then handle_illegal() - else if not(ext_check_xret_priv(User)) - then ext_fail_xret_priv() - else set_next_pc(exception_handler(cur_privilege, CTL_URET(), PC)); - RETIRE_FAIL -} +mapping clause encdec = FENCEI() if extensionEnabled(Ext_Zifencei) + <-> 0b000000000000 @ 0b00000 @ 0b001 @ 0b00000 @ 0b0001111 if extensionEnabled(Ext_Zifencei) -mapping clause assembly = URET() <-> "uret" +/* fence.i is a nop for the memory model */ +function clause execute FENCEI() = { /* __barrier(Barrier_RISCV_i); */ RETIRE_SUCCESS } + +mapping clause assembly = FENCEI() <-> "fence.i" diff --git a/model/riscv_insts_zkn.sail b/model/riscv_insts_zkn.sail index 4bb94ee..d4a3c91 100644 --- a/model/riscv_insts_zkn.sail +++ b/model/riscv_insts_zkn.sail @@ -80,8 +80,8 @@ function clause extensionEnabled(Ext_Zkne) = true union clause ast = AES32ESMI : (bits(2), regidx, regidx, regidx) -mapping clause encdec = AES32ESMI (bs, rs2, rs1, rd) if extensionEnabled(Ext_Zkne) & sizeof(xlen) == 32 - <-> bs @ 0b10011 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zkne) & sizeof(xlen) == 32 +mapping clause encdec = AES32ESMI (bs, rs2, rs1, rd) if extensionEnabled(Ext_Zkne) & xlen == 32 + <-> bs @ 0b10011 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zkne) & xlen == 32 mapping clause assembly = AES32ESMI (bs, rs2, rs1, rd) <-> "aes32esmi" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ reg_name(rs2) ^ sep() ^ hex_bits_2(bs) @@ -98,8 +98,8 @@ function clause execute (AES32ESMI (bs, rs2, rs1, rd)) = { union clause ast = AES32ESI : (bits(2), regidx, regidx, regidx) -mapping clause encdec = AES32ESI (bs, rs2, rs1, rd) if extensionEnabled(Ext_Zkne) & sizeof(xlen) == 32 - <-> bs @ 0b10001 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zkne) & sizeof(xlen) == 32 +mapping clause encdec = AES32ESI (bs, rs2, rs1, rd) if extensionEnabled(Ext_Zkne) & xlen == 32 + <-> bs @ 0b10001 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zkne) & xlen == 32 mapping clause assembly = AES32ESI (bs, rs2, rs1, rd) <-> "aes32esi" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ reg_name(rs2) ^ sep() ^ hex_bits_2(bs) @@ -123,8 +123,8 @@ function clause extensionEnabled(Ext_Zknd) = true union clause ast = AES32DSMI : (bits(2), regidx, regidx, regidx) -mapping clause encdec = AES32DSMI (bs, rs2, rs1, rd) if extensionEnabled(Ext_Zknd) & sizeof(xlen) == 32 - <-> bs @ 0b10111 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknd) & sizeof(xlen) == 32 +mapping clause encdec = AES32DSMI (bs, rs2, rs1, rd) if extensionEnabled(Ext_Zknd) & xlen == 32 + <-> bs @ 0b10111 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknd) & xlen == 32 mapping clause assembly = AES32DSMI (bs, rs2, rs1, rd) <-> "aes32dsmi" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ reg_name(rs2) ^ sep() ^ hex_bits_2(bs) @@ -141,8 +141,8 @@ function clause execute (AES32DSMI (bs, rs2, rs1, rd)) = { union clause ast = AES32DSI : (bits(2), regidx, regidx, regidx) -mapping clause encdec = AES32DSI (bs, rs2, rs1, rd) if extensionEnabled(Ext_Zknd) & sizeof(xlen) == 32 - <-> bs @ 0b10101 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknd) & sizeof(xlen) == 32 +mapping clause encdec = AES32DSI (bs, rs2, rs1, rd) if extensionEnabled(Ext_Zknd) & xlen == 32 + <-> bs @ 0b10101 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknd) & xlen == 32 mapping clause assembly = AES32DSI (bs, rs2, rs1, rd) <-> "aes32dsi" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ reg_name(rs2) ^ sep() ^ hex_bits_2(bs) @@ -168,23 +168,23 @@ union clause ast = SHA512SIG1H : (regidx, regidx, regidx) union clause ast = SHA512SUM0R : (regidx, regidx, regidx) union clause ast = SHA512SUM1R : (regidx, regidx, regidx) -mapping clause encdec = SHA512SUM0R (rs2, rs1, rd) if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 32 - <-> 0b01 @ 0b01000 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 32 +mapping clause encdec = SHA512SUM0R (rs2, rs1, rd) if extensionEnabled(Ext_Zknh) & xlen == 32 + <-> 0b01 @ 0b01000 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknh) & xlen == 32 -mapping clause encdec = SHA512SUM1R (rs2, rs1, rd) if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 32 - <-> 0b01 @ 0b01001 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 32 +mapping clause encdec = SHA512SUM1R (rs2, rs1, rd) if extensionEnabled(Ext_Zknh) & xlen == 32 + <-> 0b01 @ 0b01001 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknh) & xlen == 32 -mapping clause encdec = SHA512SIG0L (rs2, rs1, rd) if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 32 - <-> 0b01 @ 0b01010 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 32 +mapping clause encdec = SHA512SIG0L (rs2, rs1, rd) if extensionEnabled(Ext_Zknh) & xlen == 32 + <-> 0b01 @ 0b01010 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknh) & xlen == 32 -mapping clause encdec = SHA512SIG0H (rs2, rs1, rd) if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 32 - <-> 0b01 @ 0b01110 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 32 +mapping clause encdec = SHA512SIG0H (rs2, rs1, rd) if extensionEnabled(Ext_Zknh) & xlen == 32 + <-> 0b01 @ 0b01110 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknh) & xlen == 32 -mapping clause encdec = SHA512SIG1L (rs2, rs1, rd) if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 32 - <-> 0b01 @ 0b01011 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 32 +mapping clause encdec = SHA512SIG1L (rs2, rs1, rd) if extensionEnabled(Ext_Zknh) & xlen == 32 + <-> 0b01 @ 0b01011 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknh) & xlen == 32 -mapping clause encdec = SHA512SIG1H (rs2, rs1, rd) if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 32 - <-> 0b01 @ 0b01111 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 32 +mapping clause encdec = SHA512SIG1H (rs2, rs1, rd) if extensionEnabled(Ext_Zknh) & xlen == 32 + <-> 0b01 @ 0b01111 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknh) & xlen == 32 mapping clause assembly = SHA512SIG0L (rs2, rs1, rd) <-> "sha512sig0l" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ reg_name(rs2) @@ -253,26 +253,26 @@ union clause ast = AES64ES : (regidx, regidx, regidx) union clause ast = AES64DSM : (regidx, regidx, regidx) union clause ast = AES64DS : (regidx, regidx, regidx) -mapping clause encdec = AES64KS1I (rnum, rs1, rd) if (extensionEnabled(Ext_Zkne) | extensionEnabled(Ext_Zknd)) & (sizeof(xlen) == 64) & (rnum <_u 0xB) - <-> 0b00 @ 0b11000 @ 0b1 @ rnum @ rs1 @ 0b001 @ rd @ 0b0010011 if (extensionEnabled(Ext_Zkne) | extensionEnabled(Ext_Zknd)) & (sizeof(xlen) == 64) & (rnum <_u 0xB) +mapping clause encdec = AES64KS1I (rnum, rs1, rd) if (extensionEnabled(Ext_Zkne) | extensionEnabled(Ext_Zknd)) & (xlen == 64) & (rnum <_u 0xB) + <-> 0b00 @ 0b11000 @ 0b1 @ rnum @ rs1 @ 0b001 @ rd @ 0b0010011 if (extensionEnabled(Ext_Zkne) | extensionEnabled(Ext_Zknd)) & (xlen == 64) & (rnum <_u 0xB) -mapping clause encdec = AES64IM (rs1, rd) if extensionEnabled(Ext_Zknd) & sizeof(xlen) == 64 - <-> 0b00 @ 0b11000 @ 0b00000 @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zknd) & sizeof(xlen) == 64 +mapping clause encdec = AES64IM (rs1, rd) if extensionEnabled(Ext_Zknd) & xlen == 64 + <-> 0b00 @ 0b11000 @ 0b00000 @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zknd) & xlen == 64 -mapping clause encdec = AES64KS2 (rs2, rs1, rd) if (extensionEnabled(Ext_Zkne) | extensionEnabled(Ext_Zknd)) & sizeof(xlen) == 64 - <-> 0b01 @ 0b11111 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if (extensionEnabled(Ext_Zkne) | extensionEnabled(Ext_Zknd)) & sizeof(xlen) == 64 +mapping clause encdec = AES64KS2 (rs2, rs1, rd) if (extensionEnabled(Ext_Zkne) | extensionEnabled(Ext_Zknd)) & xlen == 64 + <-> 0b01 @ 0b11111 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if (extensionEnabled(Ext_Zkne) | extensionEnabled(Ext_Zknd)) & xlen == 64 -mapping clause encdec = AES64ESM (rs2, rs1, rd) if extensionEnabled(Ext_Zkne) & sizeof(xlen) == 64 - <-> 0b00 @ 0b11011 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zkne) & sizeof(xlen) == 64 +mapping clause encdec = AES64ESM (rs2, rs1, rd) if extensionEnabled(Ext_Zkne) & xlen == 64 + <-> 0b00 @ 0b11011 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zkne) & xlen == 64 -mapping clause encdec = AES64ES (rs2, rs1, rd) if extensionEnabled(Ext_Zkne) & sizeof(xlen) == 64 - <-> 0b00 @ 0b11001 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zkne) & sizeof(xlen) == 64 +mapping clause encdec = AES64ES (rs2, rs1, rd) if extensionEnabled(Ext_Zkne) & xlen == 64 + <-> 0b00 @ 0b11001 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zkne) & xlen == 64 -mapping clause encdec = AES64DSM (rs2, rs1, rd) if extensionEnabled(Ext_Zknd) & sizeof(xlen) == 64 - <-> 0b00 @ 0b11111 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknd) & sizeof(xlen) == 64 +mapping clause encdec = AES64DSM (rs2, rs1, rd) if extensionEnabled(Ext_Zknd) & xlen == 64 + <-> 0b00 @ 0b11111 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknd) & xlen == 64 -mapping clause encdec = AES64DS (rs2, rs1, rd) if extensionEnabled(Ext_Zknd) & sizeof(xlen) == 64 - <-> 0b00 @ 0b11101 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknd) & sizeof(xlen) == 64 +mapping clause encdec = AES64DS (rs2, rs1, rd) if extensionEnabled(Ext_Zknd) & xlen == 64 + <-> 0b00 @ 0b11101 @ rs2 @ rs1 @ 0b000 @ rd @ 0b0110011 if extensionEnabled(Ext_Zknd) & xlen == 64 mapping clause assembly = AES64KS1I (rnum, rs1, rd) <-> "aes64ks1i" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) ^ sep() ^ hex_bits_4(rnum) @@ -299,7 +299,7 @@ mapping clause assembly = AES64DS (rs2, rs1, rd) the range 0x0..0xA. See the encdec clause for AES64KS1I. The rum == 0xA case is used specifically for the AES-256 KeySchedule */ function clause execute (AES64KS1I(rnum, rs1, rd)) = { - assert(sizeof(xlen) == 64); + assert(xlen == 64); let prev : bits(32) = X(rs1)[63..32]; let subwords : bits(32) = aes_subword_fwd(prev); let result : bits(32) = if (rnum == 0xA) then subwords @@ -309,7 +309,7 @@ function clause execute (AES64KS1I(rnum, rs1, rd)) = { } function clause execute (AES64KS2(rs2, rs1, rd)) = { - assert(sizeof(xlen) == 64); + assert(xlen == 64); let w0 : bits(32) = X(rs1)[63..32] ^ X(rs2)[31..0]; let w1 : bits(32) = X(rs1)[63..32] ^ X(rs2)[31..0] ^ X(rs2)[63..32]; X(rd) = w1 @ w0; @@ -317,7 +317,7 @@ function clause execute (AES64KS2(rs2, rs1, rd)) = { } function clause execute (AES64IM(rs1, rd)) = { - assert(sizeof(xlen) == 64); + assert(xlen == 64); let w0 : bits(32) = aes_mixcolumn_inv(X(rs1)[31.. 0]); let w1 : bits(32) = aes_mixcolumn_inv(X(rs1)[63..32]); X(rd) = w1 @ w0; @@ -325,7 +325,7 @@ function clause execute (AES64IM(rs1, rd)) = { } function clause execute (AES64ESM(rs2, rs1, rd)) = { - assert(sizeof(xlen) == 64); + assert(xlen == 64); let sr : bits(64) = aes_rv64_shiftrows_fwd(X(rs2), X(rs1)); let wd : bits(64) = sr[63..0]; let sb : bits(64) = aes_apply_fwd_sbox_to_each_byte(wd); @@ -334,7 +334,7 @@ function clause execute (AES64ESM(rs2, rs1, rd)) = { } function clause execute (AES64ES(rs2, rs1, rd)) = { - assert(sizeof(xlen) == 64); + assert(xlen == 64); let sr : bits(64) = aes_rv64_shiftrows_fwd(X(rs2), X(rs1)); let wd : bits(64) = sr[63..0]; X(rd) = aes_apply_fwd_sbox_to_each_byte(wd); @@ -342,7 +342,7 @@ function clause execute (AES64ES(rs2, rs1, rd)) = { } function clause execute (AES64DSM(rs2, rs1, rd)) = { - assert(sizeof(xlen) == 64); + assert(xlen == 64); let sr : bits(64) = aes_rv64_shiftrows_inv(X(rs2), X(rs1)); let wd : bits(64) = sr[63..0]; let sb : bits(64) = aes_apply_inv_sbox_to_each_byte(wd); @@ -351,7 +351,7 @@ function clause execute (AES64DSM(rs2, rs1, rd)) = { } function clause execute (AES64DS(rs2, rs1, rd)) = { - assert(sizeof(xlen) == 64); + assert(xlen == 64); let sr : bits(64) = aes_rv64_shiftrows_inv(X(rs2), X(rs1)); let wd : bits(64) = sr[63..0]; X(rd) = aes_apply_inv_sbox_to_each_byte(wd); @@ -368,17 +368,17 @@ union clause ast = SHA512SIG1 : (regidx, regidx) union clause ast = SHA512SUM0 : (regidx, regidx) union clause ast = SHA512SUM1 : (regidx, regidx) -mapping clause encdec = SHA512SUM0 (rs1, rd) if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 64 - <-> 0b00 @ 0b01000 @ 0b00100 @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 64 +mapping clause encdec = SHA512SUM0 (rs1, rd) if extensionEnabled(Ext_Zknh) & xlen == 64 + <-> 0b00 @ 0b01000 @ 0b00100 @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zknh) & xlen == 64 -mapping clause encdec = SHA512SUM1 (rs1, rd) if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 64 - <-> 0b00 @ 0b01000 @ 0b00101 @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 64 +mapping clause encdec = SHA512SUM1 (rs1, rd) if extensionEnabled(Ext_Zknh) & xlen == 64 + <-> 0b00 @ 0b01000 @ 0b00101 @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zknh) & xlen == 64 -mapping clause encdec = SHA512SIG0 (rs1, rd) if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 64 - <-> 0b00 @ 0b01000 @ 0b00110 @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 64 +mapping clause encdec = SHA512SIG0 (rs1, rd) if extensionEnabled(Ext_Zknh) & xlen == 64 + <-> 0b00 @ 0b01000 @ 0b00110 @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zknh) & xlen == 64 -mapping clause encdec = SHA512SIG1 (rs1, rd) if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 64 - <-> 0b00 @ 0b01000 @ 0b00111 @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zknh) & sizeof(xlen) == 64 +mapping clause encdec = SHA512SIG1 (rs1, rd) if extensionEnabled(Ext_Zknh) & xlen == 64 + <-> 0b00 @ 0b01000 @ 0b00111 @ rs1 @ 0b001 @ rd @ 0b0010011 if extensionEnabled(Ext_Zknh) & xlen == 64 mapping clause assembly = SHA512SIG0 (rs1, rd) <-> "sha512sig0" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs1) @@ -395,7 +395,7 @@ mapping clause assembly = SHA512SUM1 (rs1, rd) /* Execute clauses for the 64-bit SHA512 instructions. */ function clause execute (SHA512SIG0(rs1, rd)) = { - assert(sizeof(xlen) == 64); + assert(xlen == 64); let input : bits(64) = X(rs1); let result : bits(64) = (input >>> 1) ^ (input >>> 8) ^ (input >> 7); X(rd) = result; @@ -403,7 +403,7 @@ function clause execute (SHA512SIG0(rs1, rd)) = { } function clause execute (SHA512SIG1(rs1, rd)) = { - assert(sizeof(xlen) == 64); + assert(xlen == 64); let input : bits(64) = X(rs1); let result : bits(64) = (input >>> 19) ^ (input >>> 61) ^ (input >> 6); X(rd) = result; @@ -411,7 +411,7 @@ function clause execute (SHA512SIG1(rs1, rd)) = { } function clause execute (SHA512SUM0(rs1, rd)) = { - assert(sizeof(xlen) == 64); + assert(xlen == 64); let input : bits(64) = X(rs1); let result : bits(64) = (input >>> 28) ^ (input >>> 34) ^ (input >>> 39); X(rd) = result; @@ -419,7 +419,7 @@ function clause execute (SHA512SUM0(rs1, rd)) = { } function clause execute (SHA512SUM1(rs1, rd)) = { - assert(sizeof(xlen) == 64); + assert(xlen == 64); let input : bits(64) = X(rs1); let result : bits(64) = (input >>> 14) ^ (input >>> 18) ^ (input >>> 41); X(rd) = result; diff --git a/model/riscv_jalr_seq.sail b/model/riscv_jalr_seq.sail index 0f4abd0..ea41ce4 100644 --- a/model/riscv_jalr_seq.sail +++ b/model/riscv_jalr_seq.sail @@ -24,7 +24,7 @@ function clause execute (RISCV_JALR(imm, rs1, rd)) = { }, Ext_ControlAddr_OK(addr) => { let target = [addr with 0 = bitzero]; /* clear addr[0] */ - if bit_to_bool(target[1]) & not(extensionEnabled(Ext_C)) then { + if bit_to_bool(target[1]) & not(extensionEnabled(Ext_Zca)) then { handle_mem_exception(target, E_Fetch_Addr_Align()); RETIRE_FAIL } else { diff --git a/model/riscv_next_control.sail b/model/riscv_next_control.sail deleted file mode 100644 index 2f83a0a..0000000 --- a/model/riscv_next_control.sail +++ /dev/null @@ -1,40 +0,0 @@ -/*=======================================================================================*/ -/* This Sail RISC-V architecture model, comprising all files and */ -/* directories except where otherwise noted is subject the BSD */ -/* two-clause license in the LICENSE file. */ -/* */ -/* SPDX-License-Identifier: BSD-2-Clause */ -/*=======================================================================================*/ - -/* Functional specification for the 'N' user-level interrupts standard extension. */ - -function clause ext_is_CSR_defined(0x000) = extensionEnabled(Ext_U) & extensionEnabled(Ext_N) // ustatus -function clause ext_is_CSR_defined(0x004) = extensionEnabled(Ext_U) & extensionEnabled(Ext_N) // uie -function clause ext_is_CSR_defined(0x005) = extensionEnabled(Ext_U) & extensionEnabled(Ext_N) // utvec -function clause ext_is_CSR_defined(0x040) = extensionEnabled(Ext_U) & extensionEnabled(Ext_N) // uscratch -function clause ext_is_CSR_defined(0x041) = extensionEnabled(Ext_U) & extensionEnabled(Ext_N) // uepc -function clause ext_is_CSR_defined(0x042) = extensionEnabled(Ext_U) & extensionEnabled(Ext_N) // ucause -function clause ext_is_CSR_defined(0x043) = extensionEnabled(Ext_U) & extensionEnabled(Ext_N) // utval -function clause ext_is_CSR_defined(0x044) = extensionEnabled(Ext_U) & extensionEnabled(Ext_N) // uip - -function clause ext_read_CSR(0x000) = Some(lower_sstatus(lower_mstatus(mstatus)).bits) -function clause ext_read_CSR(0x004) = Some(lower_sie(lower_mie(mie, mideleg), sideleg).bits) -function clause ext_read_CSR(0x005) = Some(get_utvec()) -function clause ext_read_CSR(0x040) = Some(uscratch) -function clause ext_read_CSR(0x041) = Some(get_xret_target(User) & pc_alignment_mask()) -function clause ext_read_CSR(0x042) = Some(ucause.bits) -function clause ext_read_CSR(0x043) = Some(utval) -function clause ext_read_CSR(0x044) = Some(lower_sip(lower_mip(mip, mideleg), sideleg).bits) - -function clause ext_write_CSR(0x000, value) = { mstatus = legalize_ustatus(mstatus, value); Some(mstatus.bits) } -function clause ext_write_CSR(0x004, value) = { let sie = legalize_uie(lower_mie(mie, mideleg), sideleg, value); - mie = lift_sie(mie, mideleg, sie); - Some(mie.bits) } -function clause ext_write_CSR(0x005, value) = { Some(set_utvec(value)) } -function clause ext_write_CSR(0x040, value) = { uscratch = value; Some(uscratch) } -function clause ext_write_CSR(0x041, value) = { Some(set_xret_target(User, value)) } -function clause ext_write_CSR(0x042, value) = { ucause.bits = value; Some(ucause.bits) } -function clause ext_write_CSR(0x043, value) = { utval = value; Some(utval) } -function clause ext_write_CSR(0x044, value) = { let sip = legalize_uip(lower_mip(mip, mideleg), sideleg, value); - mip = lift_sip(mip, mideleg, sip); - Some(mip.bits) } diff --git a/model/riscv_next_regs.sail b/model/riscv_next_regs.sail deleted file mode 100644 index 6f25447..0000000 --- a/model/riscv_next_regs.sail +++ /dev/null @@ -1,91 +0,0 @@ -/*=======================================================================================*/ -/* This Sail RISC-V architecture model, comprising all files and */ -/* directories except where otherwise noted is subject the BSD */ -/* two-clause license in the LICENSE file. */ -/* */ -/* SPDX-License-Identifier: BSD-2-Clause */ -/*=======================================================================================*/ - -/* Architectural state for the 'N' user-level interrupts standard extension. */ - -/* ustatus reveals a subset of mstatus */ -bitfield Ustatus : xlenbits = { - UPIE : 4, - UIE : 0 -} - -/* This is a view, so there is no register defined. */ -function lower_sstatus(s : Sstatus) -> Ustatus = { - let u = Mk_Ustatus(zero_extend(0b0)); - let u = [u with UPIE = s[UPIE]]; - let u = [u with UIE = s[UIE]]; - u -} - -function lift_ustatus(s : Sstatus, u : Ustatus) -> Sstatus = { - let s = [s with UPIE = u[UPIE]]; - let s = [s with UIE = u[UIE]]; - s -} - -function legalize_ustatus(m : Mstatus, v : xlenbits) -> Mstatus = { - let u = Mk_Ustatus(v); - let s = lower_mstatus(m); // lower current mstatus to sstatus - let s = lift_ustatus(s, u); // get updated sstatus - let m = lift_sstatus(m, s); // lift it to an updated mstatus - m -} - -bitfield Uinterrupts : xlenbits = { - UEI : 8, /* external interrupt */ - UTI : 4, /* timer interrupt */ - USI : 0 /* software interrupt */ -} - -/* Provides the uip read view of sip (s) as delegated by sideleg (d). */ -function lower_sip(s : Sinterrupts, d : Sinterrupts) -> Uinterrupts = { - let u : Uinterrupts = Mk_Uinterrupts(zero_extend(0b0)); - let u = [u with UEI = s[UEI] & d[UEI]]; - let u = [u with UTI = s[UTI] & d[UTI]]; - let u = [u with USI = s[USI] & d[USI]]; - u -} - -/* Provides the uie read view of sie as delegated by sideleg. */ -function lower_sie(s : Sinterrupts, d : Sinterrupts) -> Uinterrupts = { - let u : Uinterrupts = Mk_Uinterrupts(zero_extend(0b0)); - let u = [u with UEI = s[UEI] & d[UEI]]; - let u = [u with UTI = s[UTI] & d[UTI]]; - let u = [u with USI = s[USI] & d[USI]]; - u -} - -/* Returns the new value of sip from the previous sip (o) and the written uip (u) as delegated by sideleg (d). */ -function lift_uip(o : Sinterrupts, d : Sinterrupts, u : Uinterrupts) -> Sinterrupts = { - let s : Sinterrupts = o; - let s = if d[USI] == 0b1 then [s with USI = u[USI]] else s; - s -} - -function legalize_uip(s : Sinterrupts, d : Sinterrupts, v : xlenbits) -> Sinterrupts = { - lift_uip(s, d, Mk_Uinterrupts(v)) -} - -/* Returns the new value of sie from the previous sie (o) and the written uie (u) as delegated by sideleg (d). */ -function lift_uie(o : Sinterrupts, d : Sinterrupts, u : Uinterrupts) -> Sinterrupts = { - let s : Sinterrupts = o; - let s = if d[UEI] == 0b1 then [s with UEI = u[UEI]] else s; - let s = if d[UTI] == 0b1 then [s with UTI = u[UTI]] else s; - let s = if d[USI] == 0b1 then [s with USI = u[USI]] else s; - s -} - -function legalize_uie(s : Sinterrupts, d : Sinterrupts, v : xlenbits) -> Sinterrupts = { - lift_uie(s, d, Mk_Uinterrupts(v)) -} - -register utvec : Mtvec -register uscratch : xlenbits -register uepc : xlenbits -register ucause : Mcause -register utval : xlenbits diff --git a/model/riscv_pc_access.sail b/model/riscv_pc_access.sail index a17e86d..0185123 100644 --- a/model/riscv_pc_access.sail +++ b/model/riscv_pc_access.sail @@ -22,7 +22,7 @@ function get_next_pc() = nextPC val set_next_pc : xlenbits -> unit function set_next_pc(pc) = { - sail_branch_announce(sizeof(xlen), pc); + sail_branch_announce(xlen, pc); nextPC = pc } diff --git a/model/riscv_platform.sail b/model/riscv_platform.sail index 6c64b59..b29eb83 100644 --- a/model/riscv_platform.sail +++ b/model/riscv_platform.sail @@ -14,53 +14,53 @@ - it relies on externs to get platform address information and doesn't hardcode them */ -val elf_tohost = { - ocaml: "Elf_loader.elf_tohost", +val elf_tohost = pure { interpreter: "Elf_loader.elf_tohost", c: "elf_tohost" } : unit -> int -val elf_entry = { - ocaml: "Elf_loader.elf_entry", +val elf_entry = pure { interpreter: "Elf_loader.elf_entry", c: "elf_entry" } : unit -> int +// Cache block size is 2^cache_block_size_exp. Max is `max_mem_access` (4096) +// because this model performs `cbo.zero` with a single write, and the behaviour +// with cache blocks larger than a page is not clearly defined. +val plat_cache_block_size_exp = pure {c: "plat_cache_block_size_exp", interpreter: "Platform.cache_block_size_exp", lem: "plat_cache_block_size_exp"} : unit -> range(0, 12) + /* Main memory */ -val plat_ram_base = {c: "plat_ram_base", ocaml: "Platform.dram_base", interpreter: "Platform.dram_base", lem: "plat_ram_base"} : unit -> xlenbits -val plat_ram_size = {c: "plat_ram_size", ocaml: "Platform.dram_size", interpreter: "Platform.dram_size", lem: "plat_ram_size"} : unit -> xlenbits +val plat_ram_base = pure {c: "plat_ram_base", interpreter: "Platform.dram_base", lem: "plat_ram_base"} : unit -> xlenbits +val plat_ram_size = pure {c: "plat_ram_size", interpreter: "Platform.dram_size", lem: "plat_ram_size"} : unit -> xlenbits /* whether the MMU should update dirty bits in PTEs */ -val plat_enable_dirty_update = {ocaml: "Platform.enable_dirty_update", - interpreter: "Platform.enable_dirty_update", - c: "plat_enable_dirty_update", - lem: "plat_enable_dirty_update"} : unit -> bool +val plat_enable_dirty_update = pure {interpreter: "Platform.enable_dirty_update", + c: "plat_enable_dirty_update", + lem: "plat_enable_dirty_update"} : unit -> bool /* whether the platform supports misaligned accesses without trapping to M-mode. if false, * misaligned loads/stores are trapped to Machine mode. */ -val plat_enable_misaligned_access = {ocaml: "Platform.enable_misaligned_access", - interpreter: "Platform.enable_misaligned_access", - c: "plat_enable_misaligned_access", - lem: "plat_enable_misaligned_access"} : unit -> bool +val plat_enable_misaligned_access = pure {interpreter: "Platform.enable_misaligned_access", + c: "plat_enable_misaligned_access", + lem: "plat_enable_misaligned_access"} : unit -> bool /* whether mtval stores the bits of a faulting instruction on illegal instruction exceptions */ -val plat_mtval_has_illegal_inst_bits = {ocaml: "Platform.mtval_has_illegal_inst_bits", - interpreter: "Platform.mtval_has_illegal_inst_bits", - c: "plat_mtval_has_illegal_inst_bits", - lem: "plat_mtval_has_illegal_inst_bits"} : unit -> bool +val plat_mtval_has_illegal_inst_bits = pure {interpreter: "Platform.mtval_has_illegal_inst_bits", + c: "plat_mtval_has_illegal_inst_bits", + lem: "plat_mtval_has_illegal_inst_bits"} : unit -> bool /* ROM holding reset vector and device-tree DTB */ -val plat_rom_base = {ocaml: "Platform.rom_base", interpreter: "Platform.rom_base", c: "plat_rom_base", lem: "plat_rom_base"} : unit -> xlenbits -val plat_rom_size = {ocaml: "Platform.rom_size", interpreter: "Platform.rom_size", c: "plat_rom_size", lem: "plat_rom_size"} : unit -> xlenbits +val plat_rom_base = pure {interpreter: "Platform.rom_base", c: "plat_rom_base", lem: "plat_rom_base"} : unit -> xlenbits +val plat_rom_size = pure {interpreter: "Platform.rom_size", c: "plat_rom_size", lem: "plat_rom_size"} : unit -> xlenbits /* Location of clock-interface, which should match with the spec in the DTB */ -val plat_clint_base = {ocaml: "Platform.clint_base", interpreter: "Platform.clint_base", c: "plat_clint_base", lem: "plat_clint_base"} : unit -> xlenbits -val plat_clint_size = {ocaml: "Platform.clint_size", interpreter: "Platform.clint_size", c: "plat_clint_size", lem: "plat_clint_size"} : unit -> xlenbits +val plat_clint_base = pure {interpreter: "Platform.clint_base", c: "plat_clint_base", lem: "plat_clint_base"} : unit -> xlenbits +val plat_clint_size = pure {interpreter: "Platform.clint_size", c: "plat_clint_size", lem: "plat_clint_size"} : unit -> xlenbits /* Location of HTIF ports */ -val plat_htif_tohost = {ocaml: "Platform.htif_tohost", c: "plat_htif_tohost", lem: "plat_htif_tohost"} : unit -> xlenbits -function plat_htif_tohost () = to_bits(sizeof(xlen), elf_tohost ()) +val plat_htif_tohost = pure {c: "plat_htif_tohost", lem: "plat_htif_tohost"} : unit -> xlenbits +function plat_htif_tohost () = to_bits(xlen, elf_tohost ()) // todo: fromhost val phys_mem_segments : unit -> list((xlenbits, xlenbits)) @@ -119,7 +119,7 @@ function within_htif_readable forall 'n, 0 < 'n <= max_mem_access . (addr : xlen /* CLINT (Core Local Interruptor), based on Spike. */ -val plat_insns_per_tick = {ocaml: "Platform.insns_per_tick", interpreter: "Platform.insns_per_tick", c: "plat_insns_per_tick", lem: "plat_insns_per_tick"} : unit -> int +val plat_insns_per_tick = pure {interpreter: "Platform.insns_per_tick", c: "plat_insns_per_tick", lem: "plat_insns_per_tick"} : unit -> int // assumes a single hart, since this typically is a vector of per-hart registers. register mtimecmp : bits(64) // memory-mapped internal clint register. @@ -243,6 +243,24 @@ function clint_store(addr, width, data) = { mtimecmp = vector_update_subrange(mtimecmp, 63, 32, sail_zero_extend(data, 32)); /* FIXME: Redundant zero_extend currently required by Lem backend */ clint_dispatch(); MemValue(true) + } else if addr == MTIME_BASE & 'n == 8 then { + if get_config_print_platform() + then print_platform("clint<8>[" ^ BitStr(addr) ^ "] <- " ^ BitStr(data) ^ " (mtime)"); + mtime = data; + clint_dispatch(); + MemValue(true) + } else if addr == MTIME_BASE & 'n == 4 then { + if get_config_print_platform() + then print_platform("clint<4>[" ^ BitStr(addr) ^ "] <- " ^ BitStr(data) ^ " (mtime)"); + mtime[31 .. 0] = data; + clint_dispatch(); + MemValue(true) + } else if addr == MTIME_BASE_HI & 'n == 4 then { + if get_config_print_platform() + then print_platform("clint<4>[" ^ BitStr(addr) ^ "] <- " ^ BitStr(data) ^ " (mtime)"); + mtime[63 .. 32] = data; + clint_dispatch(); + MemValue(true) } else { if get_config_print_platform() then print_platform("clint[" ^ BitStr(addr) ^ "] <- " ^ BitStr(data) ^ " (<unmapped>)"); @@ -261,8 +279,8 @@ function tick_clock() = { /* Basic terminal character I/O. */ -val plat_term_write = {ocaml: "Platform.term_write", c: "plat_term_write", lem: "plat_term_write"} : bits(8) -> unit -val plat_term_read = {ocaml: "Platform.term_read", c: "plat_term_read", lem: "plat_term_read"} : unit -> bits(8) +val plat_term_write = impure {c: "plat_term_write", lem: "plat_term_write"} : bits(8) -> unit +val plat_term_read = impure {c: "plat_term_read", lem: "plat_term_read"} : unit -> bits(8) /* Spike's HTIF device interface, which multiplexes the above MMIO devices. */ @@ -291,7 +309,7 @@ register htif_payload_writes : bits(4) function reset_htif () -> unit = { htif_cmd_write = bitzero; htif_payload_writes = 0x0; - htif_tohost = zero_extend(0b0); + htif_tohost = zeros(); } /* Since the htif tohost port is only available at a single address, @@ -419,11 +437,11 @@ function mmio_write forall 'n, 0 <'n <= max_mem_access . (paddr : xlenbits, widt /* Platform initialization and ticking. */ function init_platform() -> unit = { - htif_tohost = zero_extend(0b0); + htif_tohost = zeros(); htif_done = false; - htif_exit_code = zero_extend(0b0); + htif_exit_code = zeros(); htif_cmd_write = bitzero; - htif_payload_writes = zero_extend(0b0); + htif_payload_writes = zeros(); } function tick_platform() -> unit = { diff --git a/model/riscv_pmp_control.sail b/model/riscv_pmp_control.sail index ce53caf..433fd66 100644 --- a/model/riscv_pmp_control.sail +++ b/model/riscv_pmp_control.sail @@ -19,7 +19,7 @@ function pmpAddrRange(cfg: Pmpcfg_ent, pmpaddr: xlenbits, prev_pmpaddr: xlenbits // NA4 is not selectable when the PMP grain G >= 1. See pmpWriteCfg(). assert(sys_pmp_grain() < 1, "NA4 cannot be selected when PMP grain G >= 1."); let lo = pmpaddr; - Some((lo, lo + 4)) + Some((lo, lo + 1)) }, NAPOT => { // Example pmpaddr: 0b00010101111 @@ -113,7 +113,7 @@ function accessToFault(acc : AccessType(ext_access_type)) -> ExceptionType = function pmpCheck forall 'n, 'n > 0. (addr: xlenbits, width: int('n), acc: AccessType(ext_access_type), priv: Privilege) -> option(ExceptionType) = { - let width : xlenbits = to_bits(sizeof(xlen), width); + let width : xlenbits = to_bits(xlen, width); foreach (i from 0 to 63) { let prev_pmpaddr = (if i > 0 then pmpReadAddrReg(i - 1) else zeros()); diff --git a/model/riscv_pmp_regs.sail b/model/riscv_pmp_regs.sail index 65afd2b..3764f35 100644 --- a/model/riscv_pmp_regs.sail +++ b/model/riscv_pmp_regs.sail @@ -40,13 +40,13 @@ bitfield Pmpcfg_ent : bits(8) = { R : 0 /* read */ } -register pmpcfg_n : vector(64, dec, Pmpcfg_ent) -register pmpaddr_n : vector(64, dec, xlenbits) +register pmpcfg_n : vector(64, Pmpcfg_ent) +register pmpaddr_n : vector(64, xlenbits) /* Packing and unpacking pmpcfg regs for xlen-width accesses */ function pmpReadCfgReg(n : range(0, 15)) -> xlenbits = { - if sizeof(xlen) == 32 + if xlen == 32 then { pmpcfg_n[n*4 + 3].bits @ pmpcfg_n[n*4 + 2].bits @ @@ -74,13 +74,13 @@ function pmpReadAddrReg(n : range(0, 63)) -> xlenbits = { match match_type[1] { bitone if G >= 2 => { // [G-2..0] read as all ones to form mask, therefore we need G-1 bits. - let mask : xlenbits = zero_extend(ones(min(G - 1, sizeof(xlen)))); + let mask : xlenbits = zero_extend(ones(min(G - 1, xlen))); addr | mask }, bitzero if G >= 1 => { // [G-1..0] read as all zeros to form mask, therefore we need G bits. - let mask : xlenbits = zero_extend(ones(min(G , sizeof(xlen)))); + let mask : xlenbits = zero_extend(ones(min(G , xlen))); addr & ~(mask) }, @@ -117,7 +117,7 @@ function pmpWriteCfg(n: range(0, 63), cfg: Pmpcfg_ent, v: bits(8)) -> Pmpcfg_ent } function pmpWriteCfgReg(n : range(0, 15), v : xlenbits) -> unit = { - if sizeof(xlen) == 32 + if xlen == 32 then { foreach (i from 0 to 3) { let idx = n*4 + i; @@ -134,7 +134,7 @@ function pmpWriteCfgReg(n : range(0, 15), v : xlenbits) -> unit = { } function pmpWriteAddr(locked: bool, tor_locked: bool, reg: xlenbits, v: xlenbits) -> xlenbits = - if sizeof(xlen) == 32 + if xlen == 32 then { if (locked | tor_locked) then reg else v } else { if (locked | tor_locked) then reg else zero_extend(v[53..0]) } diff --git a/model/riscv_reg_type.sail b/model/riscv_reg_type.sail index b4a9a08..6e9e58c 100644 --- a/model/riscv_reg_type.sail +++ b/model/riscv_reg_type.sail @@ -10,7 +10,7 @@ type regtype = xlenbits /* default zero register */ -let zero_reg : regtype = zero_extend(0x0) +let zero_reg : regtype = zeros() /* default register printer */ val RegStr : regtype -> string diff --git a/model/riscv_softfloat_interface.sail b/model/riscv_softfloat_interface.sail index 3a673fe..fdf84db 100644 --- a/model/riscv_softfloat_interface.sail +++ b/model/riscv_softfloat_interface.sail @@ -47,84 +47,84 @@ register float_fflags : bits(64) /* **************************************************************** */ /* ADD/SUB/MUL/DIV */ -val extern_f16Add = {c: "softfloat_f16add", ocaml: "Softfloat.f16_add", lem: "softfloat_f16_add"} : (bits_rm, bits_H, bits_H) -> unit +val extern_f16Add = pure {c: "softfloat_f16add", lem: "softfloat_f16_add"} : (bits_rm, bits_H, bits_H) -> unit val riscv_f16Add : (bits_rm, bits_H, bits_H) -> (bits_fflags, bits_H) function riscv_f16Add (rm, v1, v2) = { extern_f16Add(rm, v1, v2); (float_fflags[4 .. 0], float_result[15 .. 0]) } -val extern_f16Sub = {c: "softfloat_f16sub", ocaml: "Softfloat.f16_sub", lem: "softfloat_f16_sub"} : (bits_rm, bits_H, bits_H) -> unit +val extern_f16Sub = pure {c: "softfloat_f16sub", lem: "softfloat_f16_sub"} : (bits_rm, bits_H, bits_H) -> unit val riscv_f16Sub : (bits_rm, bits_H, bits_H) -> (bits_fflags, bits_H) function riscv_f16Sub (rm, v1, v2) = { extern_f16Sub(rm, v1, v2); (float_fflags[4 .. 0], float_result[15 .. 0]) } -val extern_f16Mul = {c: "softfloat_f16mul", ocaml: "Softfloat.f16_mul", lem: "softfloat_f16_mul"} : (bits_rm, bits_H, bits_H) -> unit +val extern_f16Mul = pure {c: "softfloat_f16mul", lem: "softfloat_f16_mul"} : (bits_rm, bits_H, bits_H) -> unit val riscv_f16Mul : (bits_rm, bits_H, bits_H) -> (bits_fflags, bits_H) function riscv_f16Mul (rm, v1, v2) = { extern_f16Mul(rm, v1, v2); (float_fflags[4 .. 0], float_result[15 .. 0]) } -val extern_f16Div = {c: "softfloat_f16div", ocaml: "Softfloat.f16_div", lem: "softfloat_f16_div"} : (bits_rm, bits_H, bits_H) -> unit +val extern_f16Div = pure {c: "softfloat_f16div", lem: "softfloat_f16_div"} : (bits_rm, bits_H, bits_H) -> unit val riscv_f16Div : (bits_rm, bits_H, bits_H) -> (bits_fflags, bits_H) function riscv_f16Div (rm, v1, v2) = { extern_f16Div(rm, v1, v2); (float_fflags[4 .. 0], float_result[15 .. 0]) } -val extern_f32Add = {c: "softfloat_f32add", ocaml: "Softfloat.f32_add", lem: "softfloat_f32_add"} : (bits_rm, bits_S, bits_S) -> unit +val extern_f32Add = pure {c: "softfloat_f32add", lem: "softfloat_f32_add"} : (bits_rm, bits_S, bits_S) -> unit val riscv_f32Add : (bits_rm, bits_S, bits_S) -> (bits_fflags, bits_S) function riscv_f32Add (rm, v1, v2) = { extern_f32Add(rm, v1, v2); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_f32Sub = {c: "softfloat_f32sub", ocaml: "Softfloat.f32_sub", lem: "softfloat_f32_sub"} : (bits_rm, bits_S, bits_S) -> unit +val extern_f32Sub = pure {c: "softfloat_f32sub", lem: "softfloat_f32_sub"} : (bits_rm, bits_S, bits_S) -> unit val riscv_f32Sub : (bits_rm, bits_S, bits_S) -> (bits_fflags, bits_S) function riscv_f32Sub (rm, v1, v2) = { extern_f32Sub(rm, v1, v2); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_f32Mul = {c: "softfloat_f32mul", ocaml: "Softfloat.f32_mul", lem: "softfloat_f32_mul"} : (bits_rm, bits_S, bits_S) -> unit +val extern_f32Mul = pure {c: "softfloat_f32mul", lem: "softfloat_f32_mul"} : (bits_rm, bits_S, bits_S) -> unit val riscv_f32Mul : (bits_rm, bits_S, bits_S) -> (bits_fflags, bits_S) function riscv_f32Mul (rm, v1, v2) = { extern_f32Mul(rm, v1, v2); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_f32Div = {c: "softfloat_f32div", ocaml: "Softfloat.f32_div", lem: "softfloat_f32_div"} : (bits_rm, bits_S, bits_S) -> unit +val extern_f32Div = pure {c: "softfloat_f32div", lem: "softfloat_f32_div"} : (bits_rm, bits_S, bits_S) -> unit val riscv_f32Div : (bits_rm, bits_S, bits_S) -> (bits_fflags, bits_S) function riscv_f32Div (rm, v1, v2) = { extern_f32Div(rm, v1, v2); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_f64Add = {c: "softfloat_f64add", ocaml: "Softfloat.f64_add", lem: "softfloat_f64_add"} : (bits_rm, bits_D, bits_D) -> unit +val extern_f64Add = pure {c: "softfloat_f64add", lem: "softfloat_f64_add"} : (bits_rm, bits_D, bits_D) -> unit val riscv_f64Add : (bits_rm, bits_D, bits_D) -> (bits_fflags, bits_D) function riscv_f64Add (rm, v1, v2) = { extern_f64Add(rm, v1, v2); (float_fflags[4 .. 0], float_result) } -val extern_f64Sub = {c: "softfloat_f64sub", ocaml: "Softfloat.f64_sub", lem: "softfloat_f64_sub"} : (bits_rm, bits_D, bits_D) -> unit +val extern_f64Sub = pure {c: "softfloat_f64sub", lem: "softfloat_f64_sub"} : (bits_rm, bits_D, bits_D) -> unit val riscv_f64Sub : (bits_rm, bits_D, bits_D) -> (bits_fflags, bits_D) function riscv_f64Sub (rm, v1, v2) = { extern_f64Sub(rm, v1, v2); (float_fflags[4 .. 0], float_result) } -val extern_f64Mul = {c: "softfloat_f64mul", ocaml: "Softfloat.f64_mul", lem: "softfloat_f64_mul"} : (bits_rm, bits_D, bits_D) -> unit +val extern_f64Mul = pure {c: "softfloat_f64mul", lem: "softfloat_f64_mul"} : (bits_rm, bits_D, bits_D) -> unit val riscv_f64Mul : (bits_rm, bits_D, bits_D) -> (bits_fflags, bits_D) function riscv_f64Mul (rm, v1, v2) = { extern_f64Mul(rm, v1, v2); (float_fflags[4 .. 0], float_result) } -val extern_f64Div = {c: "softfloat_f64div", ocaml: "Softfloat.f64_div", lem: "softfloat_f64_div"} : (bits_rm, bits_D, bits_D) -> unit +val extern_f64Div = pure {c: "softfloat_f64div", lem: "softfloat_f64_div"} : (bits_rm, bits_D, bits_D) -> unit val riscv_f64Div : (bits_rm, bits_D, bits_D) -> (bits_fflags, bits_D) function riscv_f64Div (rm, v1, v2) = { extern_f64Div(rm, v1, v2); @@ -134,21 +134,21 @@ function riscv_f64Div (rm, v1, v2) = { /* **************************************************************** */ /* MULTIPLY-ADD */ -val extern_f16MulAdd = {c: "softfloat_f16muladd", ocaml: "Softfloat.f16_muladd", lem: "softfloat_f16_muladd"} : (bits_rm, bits_H, bits_H, bits_H) -> unit +val extern_f16MulAdd = pure {c: "softfloat_f16muladd", lem: "softfloat_f16_muladd"} : (bits_rm, bits_H, bits_H, bits_H) -> unit val riscv_f16MulAdd : (bits_rm, bits_H, bits_H, bits_H) -> (bits_fflags, bits_H) function riscv_f16MulAdd (rm, v1, v2, v3) = { extern_f16MulAdd(rm, v1, v2, v3); (float_fflags[4 .. 0], float_result[15 .. 0]) } -val extern_f32MulAdd = {c: "softfloat_f32muladd", ocaml: "Softfloat.f32_muladd", lem: "softfloat_f32_muladd"} : (bits_rm, bits_S, bits_S, bits_S) -> unit +val extern_f32MulAdd = pure {c: "softfloat_f32muladd", lem: "softfloat_f32_muladd"} : (bits_rm, bits_S, bits_S, bits_S) -> unit val riscv_f32MulAdd : (bits_rm, bits_S, bits_S, bits_S) -> (bits_fflags, bits_S) function riscv_f32MulAdd (rm, v1, v2, v3) = { extern_f32MulAdd(rm, v1, v2, v3); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_f64MulAdd = {c: "softfloat_f64muladd", ocaml: "Softfloat.f64_muladd", lem: "softfloat_f64_muladd"} : (bits_rm, bits_D, bits_D, bits_D) -> unit +val extern_f64MulAdd = pure {c: "softfloat_f64muladd", lem: "softfloat_f64_muladd"} : (bits_rm, bits_D, bits_D, bits_D) -> unit val riscv_f64MulAdd : (bits_rm, bits_D, bits_D, bits_D) -> (bits_fflags, bits_D) function riscv_f64MulAdd (rm, v1, v2, v3) = { extern_f64MulAdd(rm, v1, v2, v3); @@ -158,21 +158,21 @@ function riscv_f64MulAdd (rm, v1, v2, v3) = { /* **************************************************************** */ /* SQUARE ROOT */ -val extern_f16Sqrt = {c: "softfloat_f16sqrt", ocaml: "Softfloat.f16_sqrt", lem: "softfloat_f16_sqrt"} : (bits_rm, bits_H) -> unit +val extern_f16Sqrt = pure {c: "softfloat_f16sqrt", lem: "softfloat_f16_sqrt"} : (bits_rm, bits_H) -> unit val riscv_f16Sqrt : (bits_rm, bits_H) -> (bits_fflags, bits_H) function riscv_f16Sqrt (rm, v) = { extern_f16Sqrt(rm, v); (float_fflags[4 .. 0], float_result[15 .. 0]) } -val extern_f32Sqrt = {c: "softfloat_f32sqrt", ocaml: "Softfloat.f32_sqrt", lem: "softfloat_f32_sqrt"} : (bits_rm, bits_S) -> unit +val extern_f32Sqrt = pure {c: "softfloat_f32sqrt", lem: "softfloat_f32_sqrt"} : (bits_rm, bits_S) -> unit val riscv_f32Sqrt : (bits_rm, bits_S) -> (bits_fflags, bits_S) function riscv_f32Sqrt (rm, v) = { extern_f32Sqrt(rm, v); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_f64Sqrt = {c: "softfloat_f64sqrt", ocaml: "Softfloat.f64_sqrt", lem: "softfloat_f64_sqrt"} : (bits_rm, bits_D) -> unit +val extern_f64Sqrt = pure {c: "softfloat_f64sqrt", lem: "softfloat_f64_sqrt"} : (bits_rm, bits_D) -> unit val riscv_f64Sqrt : (bits_rm, bits_D) -> (bits_fflags, bits_D) function riscv_f64Sqrt (rm, v) = { extern_f64Sqrt(rm, v); @@ -182,56 +182,56 @@ function riscv_f64Sqrt (rm, v) = { /* **************************************************************** */ /* CONVERSIONS */ -val extern_f16ToI32 = {c: "softfloat_f16toi32", ocaml: "Softfloat.f16_to_i32", lem: "softfloat_f16_to_i32"} : (bits_rm, bits_H) -> unit +val extern_f16ToI32 = pure {c: "softfloat_f16toi32", lem: "softfloat_f16_to_i32"} : (bits_rm, bits_H) -> unit val riscv_f16ToI32 : (bits_rm, bits_H) -> (bits_fflags, bits_W) function riscv_f16ToI32 (rm, v) = { extern_f16ToI32(rm, v); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_f16ToUi32 = {c: "softfloat_f16toui32", ocaml: "Softfloat.f16_to_ui32", lem: "softfloat_f16_to_ui32"} : (bits_rm, bits_H) -> unit +val extern_f16ToUi32 = pure {c: "softfloat_f16toui32", lem: "softfloat_f16_to_ui32"} : (bits_rm, bits_H) -> unit val riscv_f16ToUi32 : (bits_rm, bits_H) -> (bits_fflags, bits_WU) function riscv_f16ToUi32 (rm, v) = { extern_f16ToUi32(rm, v); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_i32ToF16 = {c: "softfloat_i32tof16", ocaml: "Softfloat.i32_to_f16", lem: "softfloat_i32_to_f16"} : (bits_rm, bits_W) -> unit +val extern_i32ToF16 = pure {c: "softfloat_i32tof16", lem: "softfloat_i32_to_f16"} : (bits_rm, bits_W) -> unit val riscv_i32ToF16 : (bits_rm, bits_W) -> (bits_fflags, bits_H) function riscv_i32ToF16 (rm, v) = { extern_i32ToF16(rm, v); (float_fflags[4 .. 0], float_result[15 .. 0]) } -val extern_ui32ToF16 = {c: "softfloat_ui32tof16", ocaml: "Softfloat.ui32_to_f16", lem: "softfloat_ui32_to_f16"} : (bits_rm, bits_WU) -> unit +val extern_ui32ToF16 = pure {c: "softfloat_ui32tof16", lem: "softfloat_ui32_to_f16"} : (bits_rm, bits_WU) -> unit val riscv_ui32ToF16 : (bits_rm, bits_WU) -> (bits_fflags, bits_H) function riscv_ui32ToF16 (rm, v) = { extern_ui32ToF16(rm, v); (float_fflags[4 .. 0], float_result[15 .. 0]) } -val extern_f16ToI64 = {c: "softfloat_f16toi64", ocaml: "Softfloat.f16_to_i64", lem: "softfloat_f16_to_i64"} : (bits_rm, bits_H) -> unit +val extern_f16ToI64 = pure {c: "softfloat_f16toi64", lem: "softfloat_f16_to_i64"} : (bits_rm, bits_H) -> unit val riscv_f16ToI64 : (bits_rm, bits_H) -> (bits_fflags, bits_L) function riscv_f16ToI64 (rm, v) = { extern_f16ToI64(rm, v); (float_fflags[4 .. 0], float_result) } -val extern_f16ToUi64 = {c: "softfloat_f16toui64", ocaml: "Softfloat.f16_to_ui64", lem: "softfloat_f16_to_ui64"} : (bits_rm, bits_H) -> unit +val extern_f16ToUi64 = pure {c: "softfloat_f16toui64", lem: "softfloat_f16_to_ui64"} : (bits_rm, bits_H) -> unit val riscv_f16ToUi64 : (bits_rm, bits_H) -> (bits_fflags, bits_LU) function riscv_f16ToUi64 (rm, v) = { extern_f16ToUi64(rm, v); (float_fflags[4 .. 0], float_result) } -val extern_i64ToF16 = {c: "softfloat_i64tof16", ocaml: "Softfloat.i64_to_f16", lem: "softfloat_i64_to_f16"} : (bits_rm, bits_L) -> unit +val extern_i64ToF16 = pure {c: "softfloat_i64tof16", lem: "softfloat_i64_to_f16"} : (bits_rm, bits_L) -> unit val riscv_i64ToF16 : (bits_rm, bits_L) -> (bits_fflags, bits_H) function riscv_i64ToF16 (rm, v) = { extern_i64ToF16(rm, v); (float_fflags[4 .. 0], float_result[15 .. 0]) } -val extern_ui64ToF16 = {c: "softfloat_ui64tof16", ocaml: "Softfloat.ui64_to_f16", lem: "softfloat_ui64_to_f16"} : (bits_rm, bits_L) -> unit +val extern_ui64ToF16 = pure {c: "softfloat_ui64tof16", lem: "softfloat_ui64_to_f16"} : (bits_rm, bits_L) -> unit val riscv_ui64ToF16 : (bits_rm, bits_LU) -> (bits_fflags, bits_H) function riscv_ui64ToF16 (rm, v) = { extern_ui64ToF16(rm, v); @@ -239,154 +239,154 @@ function riscv_ui64ToF16 (rm, v) = { } -val extern_f32ToI32 = {c: "softfloat_f32toi32", ocaml: "Softfloat.f32_to_i32", lem: "softfloat_f32_to_i32"} : (bits_rm, bits_S) -> unit +val extern_f32ToI32 = pure {c: "softfloat_f32toi32", lem: "softfloat_f32_to_i32"} : (bits_rm, bits_S) -> unit val riscv_f32ToI32 : (bits_rm, bits_S) -> (bits_fflags, bits_W) function riscv_f32ToI32 (rm, v) = { extern_f32ToI32(rm, v); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_f32ToUi32 = {c: "softfloat_f32toui32", ocaml: "Softfloat.f32_to_ui32", lem: "softfloat_f32_to_ui32"} : (bits_rm, bits_S) -> unit +val extern_f32ToUi32 = pure {c: "softfloat_f32toui32", lem: "softfloat_f32_to_ui32"} : (bits_rm, bits_S) -> unit val riscv_f32ToUi32 : (bits_rm, bits_S) -> (bits_fflags, bits_WU) function riscv_f32ToUi32 (rm, v) = { extern_f32ToUi32(rm, v); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_i32ToF32 = {c: "softfloat_i32tof32", ocaml: "Softfloat.i32_to_f32", lem: "softfloat_i32_to_f32"} : (bits_rm, bits_W) -> unit +val extern_i32ToF32 = pure {c: "softfloat_i32tof32", lem: "softfloat_i32_to_f32"} : (bits_rm, bits_W) -> unit val riscv_i32ToF32 : (bits_rm, bits_W) -> (bits_fflags, bits_S) function riscv_i32ToF32 (rm, v) = { extern_i32ToF32(rm, v); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_ui32ToF32 = {c: "softfloat_ui32tof32", ocaml: "Softfloat.ui32_to_f32", lem: "softfloat_ui32_to_f32"} : (bits_rm, bits_WU) -> unit +val extern_ui32ToF32 = pure {c: "softfloat_ui32tof32", lem: "softfloat_ui32_to_f32"} : (bits_rm, bits_WU) -> unit val riscv_ui32ToF32 : (bits_rm, bits_WU) -> (bits_fflags, bits_S) function riscv_ui32ToF32 (rm, v) = { extern_ui32ToF32(rm, v); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_f32ToI64 = {c: "softfloat_f32toi64", ocaml: "Softfloat.f32_to_i64", lem: "softfloat_f32_to_i64"} : (bits_rm, bits_S) -> unit +val extern_f32ToI64 = pure {c: "softfloat_f32toi64", lem: "softfloat_f32_to_i64"} : (bits_rm, bits_S) -> unit val riscv_f32ToI64 : (bits_rm, bits_S) -> (bits_fflags, bits_L) function riscv_f32ToI64 (rm, v) = { extern_f32ToI64(rm, v); (float_fflags[4 .. 0], float_result) } -val extern_f32ToUi64 = {c: "softfloat_f32toui64", ocaml: "Softfloat.f32_to_ui64", lem: "softfloat_f32_to_ui64"} : (bits_rm, bits_S) -> unit +val extern_f32ToUi64 = pure {c: "softfloat_f32toui64", lem: "softfloat_f32_to_ui64"} : (bits_rm, bits_S) -> unit val riscv_f32ToUi64 : (bits_rm, bits_S) -> (bits_fflags, bits_LU) function riscv_f32ToUi64 (rm, v) = { extern_f32ToUi64(rm, v); (float_fflags[4 .. 0], float_result) } -val extern_i64ToF32 = {c: "softfloat_i64tof32", ocaml: "Softfloat.i64_to_f32", lem: "softfloat_i64_to_f32"} : (bits_rm, bits_L) -> unit +val extern_i64ToF32 = pure {c: "softfloat_i64tof32", lem: "softfloat_i64_to_f32"} : (bits_rm, bits_L) -> unit val riscv_i64ToF32 : (bits_rm, bits_L) -> (bits_fflags, bits_S) function riscv_i64ToF32 (rm, v) = { extern_i64ToF32(rm, v); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_ui64ToF32 = {c: "softfloat_ui64tof32", ocaml: "Softfloat.ui64_to_f32", lem: "softfloat_ui64_to_f32"} : (bits_rm, bits_L) -> unit +val extern_ui64ToF32 = pure {c: "softfloat_ui64tof32", lem: "softfloat_ui64_to_f32"} : (bits_rm, bits_L) -> unit val riscv_ui64ToF32 : (bits_rm, bits_LU) -> (bits_fflags, bits_S) function riscv_ui64ToF32 (rm, v) = { extern_ui64ToF32(rm, v); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_f64ToI32 = {c: "softfloat_f64toi32", ocaml: "Softfloat.f64_to_i32", lem: "softfloat_f64_to_i32"} : (bits_rm, bits_D) -> unit +val extern_f64ToI32 = pure {c: "softfloat_f64toi32", lem: "softfloat_f64_to_i32"} : (bits_rm, bits_D) -> unit val riscv_f64ToI32 : (bits_rm, bits_D) -> (bits_fflags, bits_W) function riscv_f64ToI32 (rm, v) = { extern_f64ToI32(rm, v); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_f64ToUi32 = {c: "softfloat_f64toui32", ocaml: "Softfloat.f64_to_ui32", lem: "softfloat_f64_to_ui32"} : (bits_rm, bits_D) -> unit +val extern_f64ToUi32 = pure {c: "softfloat_f64toui32", lem: "softfloat_f64_to_ui32"} : (bits_rm, bits_D) -> unit val riscv_f64ToUi32 : (bits_rm, bits_D) -> (bits_fflags, bits_WU) function riscv_f64ToUi32 (rm, v) = { extern_f64ToUi32(rm, v); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_i32ToF64 = {c: "softfloat_i32tof64", ocaml: "Softfloat.i32_to_f64", lem: "softfloat_i32_to_f64"} : (bits_rm, bits_W) -> unit +val extern_i32ToF64 = pure {c: "softfloat_i32tof64", lem: "softfloat_i32_to_f64"} : (bits_rm, bits_W) -> unit val riscv_i32ToF64 : (bits_rm, bits_W) -> (bits_fflags, bits_D) function riscv_i32ToF64 (rm, v) = { extern_i32ToF64(rm, v); (float_fflags[4 .. 0], float_result) } -val extern_ui32ToF64 = {c: "softfloat_ui32tof64", ocaml: "Softfloat.ui32_to_f64", lem: "softfloat_ui32_to_f64"} : (bits_rm, bits_WU) -> unit +val extern_ui32ToF64 = pure {c: "softfloat_ui32tof64", lem: "softfloat_ui32_to_f64"} : (bits_rm, bits_WU) -> unit val riscv_ui32ToF64 : (bits_rm, bits_WU) -> (bits_fflags, bits_D) function riscv_ui32ToF64 (rm, v) = { extern_ui32ToF64(rm, v); (float_fflags[4 .. 0], float_result) } -val extern_f64ToI64 = {c: "softfloat_f64toi64", ocaml: "Softfloat.f64_to_i64", lem: "softfloat_f64_to_i64"} : (bits_rm, bits_D) -> unit +val extern_f64ToI64 = pure {c: "softfloat_f64toi64", lem: "softfloat_f64_to_i64"} : (bits_rm, bits_D) -> unit val riscv_f64ToI64 : (bits_rm, bits_D) -> (bits_fflags, bits_L) function riscv_f64ToI64 (rm, v) = { extern_f64ToI64(rm, v); (float_fflags[4 .. 0], float_result) } -val extern_f64ToUi64 = {c: "softfloat_f64toui64", ocaml: "Softfloat.f64_to_ui64", lem: "softfloat_f64_to_ui64"} : (bits_rm, bits_D) -> unit +val extern_f64ToUi64 = pure {c: "softfloat_f64toui64", lem: "softfloat_f64_to_ui64"} : (bits_rm, bits_D) -> unit val riscv_f64ToUi64 : (bits_rm, bits_D) -> (bits_fflags, bits_LU) function riscv_f64ToUi64 (rm, v) = { extern_f64ToUi64(rm, v); (float_fflags[4 .. 0], float_result) } -val extern_i64ToF64 = {c: "softfloat_i64tof64", ocaml: "Softfloat.i64_to_f64", lem: "softfloat_i64_to_f64"} : (bits_rm, bits_L) -> unit +val extern_i64ToF64 = pure {c: "softfloat_i64tof64", lem: "softfloat_i64_to_f64"} : (bits_rm, bits_L) -> unit val riscv_i64ToF64 : (bits_rm, bits_L) -> (bits_fflags, bits_D) function riscv_i64ToF64 (rm, v) = { extern_i64ToF64(rm, v); (float_fflags[4 .. 0], float_result) } -val extern_ui64ToF64 = {c: "softfloat_ui64tof64", ocaml: "Softfloat.ui64_to_f64", lem: "softfloat_ui64_to_f64"} : (bits_rm, bits_LU) -> unit +val extern_ui64ToF64 = pure {c: "softfloat_ui64tof64", lem: "softfloat_ui64_to_f64"} : (bits_rm, bits_LU) -> unit val riscv_ui64ToF64 : (bits_rm, bits_LU) -> (bits_fflags, bits_D) function riscv_ui64ToF64 (rm, v) = { extern_ui64ToF64(rm, v); (float_fflags[4 .. 0], float_result) } -val extern_f16ToF32 = {c: "softfloat_f16tof32", ocaml: "Softfloat.f16_to_f32", lem: "softfloat_f16_to_f32"} : (bits_rm, bits_H) -> unit +val extern_f16ToF32 = pure {c: "softfloat_f16tof32", lem: "softfloat_f16_to_f32"} : (bits_rm, bits_H) -> unit val riscv_f16ToF32 : (bits_rm, bits_H) -> (bits_fflags, bits_S) function riscv_f16ToF32 (rm, v) = { extern_f16ToF32(rm, v); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_f16ToF64 = {c: "softfloat_f16tof64", ocaml: "Softfloat.f16_to_f64", lem: "softfloat_f16_to_f64"} : (bits_rm, bits_H) -> unit +val extern_f16ToF64 = pure {c: "softfloat_f16tof64", lem: "softfloat_f16_to_f64"} : (bits_rm, bits_H) -> unit val riscv_f16ToF64 : (bits_rm, bits_H) -> (bits_fflags, bits_D) function riscv_f16ToF64 (rm, v) = { extern_f16ToF64(rm, v); (float_fflags[4 .. 0], float_result) } -val extern_f32ToF64 = {c: "softfloat_f32tof64", ocaml: "Softfloat.f32_to_f64", lem: "softfloat_f32_to_f64"} : (bits_rm, bits_S) -> unit +val extern_f32ToF64 = pure {c: "softfloat_f32tof64", lem: "softfloat_f32_to_f64"} : (bits_rm, bits_S) -> unit val riscv_f32ToF64 : (bits_rm, bits_S) -> (bits_fflags, bits_D) function riscv_f32ToF64 (rm, v) = { extern_f32ToF64(rm, v); (float_fflags[4 .. 0], float_result) } -val extern_f32ToF16 = {c: "softfloat_f32tof16", ocaml: "Softfloat.f32_to_f16", lem: "softfloat_f32_to_f16"} : (bits_rm, bits_S) -> unit +val extern_f32ToF16 = pure {c: "softfloat_f32tof16", lem: "softfloat_f32_to_f16"} : (bits_rm, bits_S) -> unit val riscv_f32ToF16 : (bits_rm, bits_S) -> (bits_fflags, bits_H) function riscv_f32ToF16 (rm, v) = { extern_f32ToF16(rm, v); (float_fflags[4 .. 0], float_result[15 .. 0]) } -val extern_f64ToF16 = {c: "softfloat_f64tof16", ocaml: "Softfloat.f64_to_f16", lem: "softfloat_f64_to_f16"} : (bits_rm, bits_D) -> unit +val extern_f64ToF16 = pure {c: "softfloat_f64tof16", lem: "softfloat_f64_to_f16"} : (bits_rm, bits_D) -> unit val riscv_f64ToF16 : (bits_rm, bits_D) -> (bits_fflags, bits_H) function riscv_f64ToF16 (rm, v) = { extern_f64ToF16(rm, v); (float_fflags[4 .. 0], float_result[15 .. 0]) } -val extern_f64ToF32 = {c: "softfloat_f64tof32", ocaml: "Softfloat.f64_to_f32", lem: "softfloat_f64_to_f32"} : (bits_rm, bits_D) -> unit +val extern_f64ToF32 = pure {c: "softfloat_f64tof32", lem: "softfloat_f64_to_f32"} : (bits_rm, bits_D) -> unit val riscv_f64ToF32 : (bits_rm, bits_D) -> (bits_fflags, bits_S) function riscv_f64ToF32 (rm, v) = { extern_f64ToF32(rm, v); @@ -396,126 +396,126 @@ function riscv_f64ToF32 (rm, v) = { /* **************************************************************** */ /* COMPARISONS */ -val extern_f16Lt = {c: "softfloat_f16lt", ocaml: "Softfloat.f16_lt", lem: "softfloat_f16_lt"} : (bits_H, bits_H) -> unit +val extern_f16Lt = pure {c: "softfloat_f16lt", lem: "softfloat_f16_lt"} : (bits_H, bits_H) -> unit val riscv_f16Lt : (bits_H, bits_H) -> (bits_fflags, bool) function riscv_f16Lt (v1, v2) = { extern_f16Lt(v1, v2); (float_fflags[4 .. 0], bit_to_bool(float_result[0])) } -val extern_f16Lt_quiet = {c: "softfloat_f16lt_quiet", ocaml: "Softfloat.f16_lt_quiet", lem: "softfloat_f16_lt_quiet"} : (bits_H, bits_H) -> unit +val extern_f16Lt_quiet = pure {c: "softfloat_f16lt_quiet", lem: "softfloat_f16_lt_quiet"} : (bits_H, bits_H) -> unit val riscv_f16Lt_quiet : (bits_H, bits_H) -> (bits_fflags, bool) function riscv_f16Lt_quiet (v1, v2) = { extern_f16Lt_quiet(v1, v2); (float_fflags[4 .. 0], bit_to_bool(float_result[0])) } -val extern_f16Le = {c: "softfloat_f16le", ocaml: "Softfloat.f16_le", lem: "softfloat_f16_le"} : (bits_H, bits_H) -> unit +val extern_f16Le = pure {c: "softfloat_f16le", lem: "softfloat_f16_le"} : (bits_H, bits_H) -> unit val riscv_f16Le : (bits_H, bits_H) -> (bits_fflags, bool) function riscv_f16Le (v1, v2) = { extern_f16Le(v1, v2); (float_fflags[4 .. 0], bit_to_bool(float_result[0])) } -val extern_f16Le_quiet = {c: "softfloat_f16le_quiet", ocaml: "Softfloat.f16_le_quiet", lem: "softfloat_f16_le_quiet"} : (bits_H, bits_H) -> unit +val extern_f16Le_quiet = pure {c: "softfloat_f16le_quiet", lem: "softfloat_f16_le_quiet"} : (bits_H, bits_H) -> unit val riscv_f16Le_quiet : (bits_H, bits_H) -> (bits_fflags, bool) function riscv_f16Le_quiet (v1, v2) = { extern_f16Le_quiet(v1, v2); (float_fflags[4 .. 0], bit_to_bool(float_result[0])) } -val extern_f16Eq = {c: "softfloat_f16eq", ocaml: "Softfloat.f16_eq", lem: "softfloat_f16_eq"} : (bits_H, bits_H) -> unit +val extern_f16Eq = pure {c: "softfloat_f16eq", lem: "softfloat_f16_eq"} : (bits_H, bits_H) -> unit val riscv_f16Eq : (bits_H, bits_H) -> (bits_fflags, bool) function riscv_f16Eq (v1, v2) = { extern_f16Eq(v1, v2); (float_fflags[4 .. 0], bit_to_bool(float_result[0])) } -val extern_f32Lt = {c: "softfloat_f32lt", ocaml: "Softfloat.f32_lt", lem: "softfloat_f32_lt"} : (bits_S, bits_S) -> unit +val extern_f32Lt = pure {c: "softfloat_f32lt", lem: "softfloat_f32_lt"} : (bits_S, bits_S) -> unit val riscv_f32Lt : (bits_S, bits_S) -> (bits_fflags, bool) function riscv_f32Lt (v1, v2) = { extern_f32Lt(v1, v2); (float_fflags[4 .. 0], bit_to_bool(float_result[0])) } -val extern_f32Lt_quiet = {c: "softfloat_f32lt_quiet", ocaml: "Softfloat.f32_lt_quiet", lem: "softfloat_f32_lt_quiet"} : (bits_S, bits_S) -> unit +val extern_f32Lt_quiet = pure {c: "softfloat_f32lt_quiet", lem: "softfloat_f32_lt_quiet"} : (bits_S, bits_S) -> unit val riscv_f32Lt_quiet : (bits_S, bits_S) -> (bits_fflags, bool) function riscv_f32Lt_quiet (v1, v2) = { extern_f32Lt_quiet(v1, v2); (float_fflags[4 .. 0], bit_to_bool(float_result[0])) } -val extern_f32Le = {c: "softfloat_f32le", ocaml: "Softfloat.f32_le", lem: "softfloat_f32_le"} : (bits_S, bits_S) -> unit +val extern_f32Le = pure {c: "softfloat_f32le", lem: "softfloat_f32_le"} : (bits_S, bits_S) -> unit val riscv_f32Le : (bits_S, bits_S) -> (bits_fflags, bool) function riscv_f32Le (v1, v2) = { extern_f32Le(v1, v2); (float_fflags[4 .. 0], bit_to_bool(float_result[0])) } -val extern_f32Le_quiet = {c: "softfloat_f32le_quiet", ocaml: "Softfloat.f32_le_quiet", lem: "softfloat_f32_le_quiet"} : (bits_S, bits_S) -> unit +val extern_f32Le_quiet = pure {c: "softfloat_f32le_quiet", lem: "softfloat_f32_le_quiet"} : (bits_S, bits_S) -> unit val riscv_f32Le_quiet : (bits_S, bits_S) -> (bits_fflags, bool) function riscv_f32Le_quiet (v1, v2) = { extern_f32Le_quiet(v1, v2); (float_fflags[4 .. 0], bit_to_bool(float_result[0])) } -val extern_f32Eq = {c: "softfloat_f32eq", ocaml: "Softfloat.f32_eq", lem: "softfloat_f32_eq"} : (bits_S, bits_S) -> unit +val extern_f32Eq = pure {c: "softfloat_f32eq", lem: "softfloat_f32_eq"} : (bits_S, bits_S) -> unit val riscv_f32Eq : (bits_S, bits_S) -> (bits_fflags, bool) function riscv_f32Eq (v1, v2) = { extern_f32Eq(v1, v2); (float_fflags[4 .. 0], bit_to_bool(float_result[0])) } -val extern_f64Lt = {c: "softfloat_f64lt", ocaml: "Softfloat.f64_lt", lem: "softfloat_f64_lt"} : (bits_D, bits_D) -> unit +val extern_f64Lt = pure {c: "softfloat_f64lt", lem: "softfloat_f64_lt"} : (bits_D, bits_D) -> unit val riscv_f64Lt : (bits_D, bits_D) -> (bits_fflags, bool) function riscv_f64Lt (v1, v2) = { extern_f64Lt(v1, v2); (float_fflags[4 .. 0], bit_to_bool(float_result[0])) } -val extern_f64Lt_quiet = {c: "softfloat_f64lt_quiet", ocaml: "Softfloat.f64_lt_quiet", lem: "softfloat_f64_lt_quiet"} : (bits_D, bits_D) -> unit +val extern_f64Lt_quiet = pure {c: "softfloat_f64lt_quiet", lem: "softfloat_f64_lt_quiet"} : (bits_D, bits_D) -> unit val riscv_f64Lt_quiet : (bits_D, bits_D) -> (bits_fflags, bool) function riscv_f64Lt_quiet (v1, v2) = { extern_f64Lt_quiet(v1, v2); (float_fflags[4 .. 0], bit_to_bool(float_result[0])) } -val extern_f64Le = {c: "softfloat_f64le", ocaml: "Softfloat.f64_le", lem: "softfloat_f64_le"} : (bits_D, bits_D) -> unit +val extern_f64Le = pure {c: "softfloat_f64le", lem: "softfloat_f64_le"} : (bits_D, bits_D) -> unit val riscv_f64Le : (bits_D, bits_D) -> (bits_fflags, bool) function riscv_f64Le (v1, v2) = { extern_f64Le(v1, v2); (float_fflags[4 .. 0], bit_to_bool(float_result[0])) } -val extern_f64Le_quiet = {c: "softfloat_f64le_quiet", ocaml: "Softfloat.f64_le_quiet", lem: "softfloat_f64_le_quiet"} : (bits_D, bits_D) -> unit +val extern_f64Le_quiet = pure {c: "softfloat_f64le_quiet", lem: "softfloat_f64_le_quiet"} : (bits_D, bits_D) -> unit val riscv_f64Le_quiet : (bits_D, bits_D) -> (bits_fflags, bool) function riscv_f64Le_quiet (v1, v2) = { extern_f64Le_quiet(v1, v2); (float_fflags[4 .. 0], bit_to_bool(float_result[0])) } -val extern_f64Eq = {c: "softfloat_f64eq", ocaml: "Softfloat.f64_eq", lem: "softfloat_f64_eq"} : (bits_D, bits_D) -> unit +val extern_f64Eq = pure {c: "softfloat_f64eq", lem: "softfloat_f64_eq"} : (bits_D, bits_D) -> unit val riscv_f64Eq : (bits_D, bits_D) -> (bits_fflags, bool) function riscv_f64Eq (v1, v2) = { extern_f64Eq(v1, v2); (float_fflags[4 .. 0], bit_to_bool(float_result[0])) } -val extern_f16roundToInt = {c: "softfloat_f16roundToInt", ocaml: "Softfloat.f16_round_to_int", lem: "softfloat_f16_round_to_int"} : (bits_rm, bits_H, bool) -> unit +val extern_f16roundToInt = pure {c: "softfloat_f16roundToInt", lem: "softfloat_f16_round_to_int"} : (bits_rm, bits_H, bool) -> unit val riscv_f16roundToInt : (bits_rm, bits_H, bool) -> (bits_fflags, bits_H) function riscv_f16roundToInt (rm, v, exact) = { extern_f16roundToInt(rm, v, exact); (float_fflags[4 .. 0], float_result[15 .. 0]) } -val extern_f32roundToInt = {c: "softfloat_f32roundToInt", ocaml: "Softfloat.f32_round_to_int", lem: "softfloat_f32_round_to_int"} : (bits_rm, bits_S, bool) -> unit +val extern_f32roundToInt = pure {c: "softfloat_f32roundToInt", lem: "softfloat_f32_round_to_int"} : (bits_rm, bits_S, bool) -> unit val riscv_f32roundToInt : (bits_rm, bits_S, bool) -> (bits_fflags, bits_S) function riscv_f32roundToInt (rm, v, exact) = { extern_f32roundToInt(rm, v, exact); (float_fflags[4 .. 0], float_result[31 .. 0]) } -val extern_f64roundToInt = {c: "softfloat_f64roundToInt", ocaml: "Softfloat.f64_round_to_int", lem: "softfloat_f64_round_to_int"} : (bits_rm, bits_D, bool) -> unit +val extern_f64roundToInt = pure {c: "softfloat_f64roundToInt", lem: "softfloat_f64_round_to_int"} : (bits_rm, bits_D, bool) -> unit val riscv_f64roundToInt : (bits_rm, bits_D, bool) -> (bits_fflags, bits_D) function riscv_f64roundToInt (rm, v, exact) = { extern_f64roundToInt(rm, v, exact); diff --git a/model/riscv_step.sail b/model/riscv_step.sail index 6f2a158..21bd82e 100644 --- a/model/riscv_step.sail +++ b/model/riscv_step.sail @@ -54,7 +54,7 @@ function step(step_no : int) -> bool = { print_instr("[" ^ dec_str(step_no) ^ "] [" ^ to_str(cur_privilege) ^ "]: " ^ BitStr(PC) ^ " (" ^ BitStr(h) ^ ") " ^ to_str(ast)); }; /* check for RVC once here instead of every RVC execute clause. */ - if extensionEnabled(Ext_C) then { + if extensionEnabled(Ext_Zca) then { nextPC = PC + 2; (execute(ast), true) } else { @@ -93,12 +93,15 @@ function step(step_no : int) -> bool = { function loop () : unit -> unit = { let insns_per_tick = plat_insns_per_tick(); - i : int = 0; - step_no : int = 0; + var i : int = 0; + var step_no : int = 0; while not(htif_done) do { let stepped = step(step_no); if stepped then { step_no = step_no + 1; + if get_config_print_instr() then { + print_step() + }; sail_end_cycle() }; diff --git a/model/riscv_step_rvfi.sail b/model/riscv_step_rvfi.sail index caa0d8d..53ebb15 100644 --- a/model/riscv_step_rvfi.sail +++ b/model/riscv_step_rvfi.sail @@ -14,7 +14,7 @@ function ext_pre_step_hook() -> unit = () function ext_post_step_hook() -> unit = { /* record the next pc */ - rvfi_pc_data->rvfi_pc_wdata() = zero_extend(get_arch_pc()) + rvfi_pc_data[rvfi_pc_wdata] = zero_extend(get_arch_pc()) } val ext_init : unit -> unit diff --git a/model/riscv_sys_control.sail b/model/riscv_sys_control.sail index 4f7b354..6379f56 100644 --- a/model/riscv_sys_control.sail +++ b/model/riscv_sys_control.sail @@ -16,84 +16,94 @@ function clause extensionEnabled(Ext_Zkr) = true function csrAccess(csr : csreg) -> csrRW = csr[11..10] function csrPriv(csr : csreg) -> priv_level = csr[9..8] -function is_CSR_defined (csr : csreg) -> bool = - match (csr) { - /* machine mode: informational */ - 0xf11 => true, // mvendorid - 0xf12 => true, // marchdid - 0xf13 => true, // mimpid - 0xf14 => true, // mhartid - 0xf15 => true, // mconfigptr - /* machine mode: trap setup */ - 0x300 => true, // mstatus - 0x301 => true, // misa - 0x302 => extensionEnabled(Ext_S) | extensionEnabled(Ext_N), // medeleg - 0x303 => extensionEnabled(Ext_S) | extensionEnabled(Ext_N), // mideleg - 0x304 => true, // mie - 0x305 => true, // mtvec - 0x306 => extensionEnabled(Ext_U), // mcounteren - 0x30A => extensionEnabled(Ext_U), // menvcfg - 0x310 => sizeof(xlen) == 32, // mstatush - 0x31A => extensionEnabled(Ext_U) & (sizeof(xlen) == 32), // menvcfgh - 0x320 => true, // mcountinhibit - /* machine mode: trap handling */ - 0x340 => true, // mscratch - 0x341 => true, // mepc - 0x342 => true, // mcause - 0x343 => true, // mtval - 0x344 => true, // mip - - // pmpcfgN - 0x3A @ idx : bits(4) => sys_pmp_count() > unsigned(idx) & (idx[0] == bitzero | sizeof(xlen) == 32), - - // pmpaddrN. Unfortunately the PMP index does not nicely align with the CSR index bits. - 0x3B @ idx : bits(4) => sys_pmp_count() > unsigned(0b00 @ idx), - 0x3C @ idx : bits(4) => sys_pmp_count() > unsigned(0b01 @ idx), - 0x3D @ idx : bits(4) => sys_pmp_count() > unsigned(0b10 @ idx), - 0x3E @ idx : bits(4) => sys_pmp_count() > unsigned(0b11 @ idx), - 0xB00 => true, // mcycle - 0xB02 => true, // minstret - - 0xB80 => sizeof(xlen) == 32, // mcycleh - 0xB82 => sizeof(xlen) == 32, // minstreth - - /* disabled trigger/debug module */ - 0x7a0 => true, - - /* supervisor mode: trap setup */ - 0x100 => extensionEnabled(Ext_S), // sstatus - 0x102 => extensionEnabled(Ext_S) & extensionEnabled(Ext_N), // sedeleg - 0x103 => extensionEnabled(Ext_S) & extensionEnabled(Ext_N), // sideleg - 0x104 => extensionEnabled(Ext_S), // sie - 0x105 => extensionEnabled(Ext_S), // stvec - 0x106 => extensionEnabled(Ext_S), // scounteren - 0x10A => extensionEnabled(Ext_S), // senvcfg - - /* supervisor mode: trap handling */ - 0x140 => extensionEnabled(Ext_S), // sscratch - 0x141 => extensionEnabled(Ext_S), // sepc - 0x142 => extensionEnabled(Ext_S), // scause - 0x143 => extensionEnabled(Ext_S), // stval - 0x144 => extensionEnabled(Ext_S), // sip - - /* supervisor mode: address translation */ - 0x180 => extensionEnabled(Ext_S), // satp - - /* user mode: counters */ - 0xC00 => extensionEnabled(Ext_U), // cycle - 0xC01 => extensionEnabled(Ext_U), // time - 0xC02 => extensionEnabled(Ext_U), // instret - - 0xC80 => extensionEnabled(Ext_U) & (sizeof(xlen) == 32), // cycleh - 0xC81 => extensionEnabled(Ext_U) & (sizeof(xlen) == 32), // timeh - 0xC82 => extensionEnabled(Ext_U) & (sizeof(xlen) == 32), // instreth - - /* user mode: Zkr */ - 0x015 => extensionEnabled(Ext_Zkr), - - /* check extensions */ - _ => ext_is_CSR_defined(csr) - } +// TODO: These is_CSR_defined definitions should be moved to the files +// corresponding to their extensions rather than all be here. + +/* machine mode: informational */ +function clause is_CSR_defined(0xf11) = true // mvendorid +function clause is_CSR_defined(0xf12) = true // marchdid +function clause is_CSR_defined(0xf13) = true // mimpid +function clause is_CSR_defined(0xf14) = true // mhartid +function clause is_CSR_defined(0xf15) = true // mconfigptr +/* machine mode: trap setup */ +function clause is_CSR_defined(0x300) = true // mstatus +function clause is_CSR_defined(0x301) = true // misa +function clause is_CSR_defined(0x302) = extensionEnabled(Ext_S) // medeleg +function clause is_CSR_defined(0x303) = extensionEnabled(Ext_S) // mideleg +function clause is_CSR_defined(0x304) = true // mie +function clause is_CSR_defined(0x305) = true // mtvec +function clause is_CSR_defined(0x306) = extensionEnabled(Ext_U) // mcounteren +function clause is_CSR_defined(0x30A) = extensionEnabled(Ext_U) // menvcfg +function clause is_CSR_defined(0x310) = xlen == 32 // mstatush +function clause is_CSR_defined(0x31A) = extensionEnabled(Ext_U) & (xlen == 32) // menvcfgh +function clause is_CSR_defined(0x320) = true // mcountinhibit + + +/* machine mode: trap handling */ +function clause is_CSR_defined(0x340) = true // mscratch +function clause is_CSR_defined(0x341) = true // mepc +function clause is_CSR_defined(0x342) = true // mcause +function clause is_CSR_defined(0x343) = true // mtval +function clause is_CSR_defined(0x344) = true // mip + +// pmpcfgN +function clause is_CSR_defined(0x3A) @ idx : bits(4) = sys_pmp_count() > unsigned(idx) & (idx[0] == bitzero | xlen == 32) + +// pmpaddrN. Unfortunately the PMP index does not nicely align with the CSR index bits. +function clause is_CSR_defined(0x3B) @ idx : bits(4) = sys_pmp_count() > unsigned(0b00 @ idx) +function clause is_CSR_defined(0x3C) @ idx : bits(4) = sys_pmp_count() > unsigned(0b01 @ idx) +function clause is_CSR_defined(0x3D) @ idx : bits(4) = sys_pmp_count() > unsigned(0b10 @ idx) +function clause is_CSR_defined(0x3E) @ idx : bits(4) = sys_pmp_count() > unsigned(0b11 @ idx) + +/* counters */ +function clause is_CSR_defined(0b0011001 /* 0x320 */ @ index : bits(5) if unsigned(index) >= 3) = extensionEnabled(Ext_Zihpm) // mhpmevent3..31 + +function clause is_CSR_defined(0xB00) = true // mcycle +function clause is_CSR_defined(0xB02) = true // minstret + +function clause is_CSR_defined(0b1011000 /* 0xB00 */ @ index : bits(5) if unsigned(index) >= 3) = extensionEnabled(Ext_Zihpm) // mhpmcounter3..31 + +function clause is_CSR_defined(0xB80) = xlen == 32 // mcycleh +function clause is_CSR_defined(0xB82) = xlen == 32 // minstreth + +function clause is_CSR_defined(0b1011100 /* 0xB80 */ @ index : bits(5) if unsigned(index) >= 3) = extensionEnabled(Ext_Zihpm) & (xlen == 32) // mhpmcounterh3..31 + +/* disabled trigger/debug module */ +function clause is_CSR_defined(0x7a0) = true + +/* supervisor mode: trap setup */ +function clause is_CSR_defined(0x100) = extensionEnabled(Ext_S) // sstatus +function clause is_CSR_defined(0x104) = extensionEnabled(Ext_S) // sie +function clause is_CSR_defined(0x105) = extensionEnabled(Ext_S) // stvec +function clause is_CSR_defined(0x106) = extensionEnabled(Ext_S) // scounteren +function clause is_CSR_defined(0x10A) = extensionEnabled(Ext_S) // senvcfg + +/* supervisor mode: trap handling */ +function clause is_CSR_defined(0x140) = extensionEnabled(Ext_S) // sscratch +function clause is_CSR_defined(0x141) = extensionEnabled(Ext_S) // sepc +function clause is_CSR_defined(0x142) = extensionEnabled(Ext_S) // scause +function clause is_CSR_defined(0x143) = extensionEnabled(Ext_S) // stval +function clause is_CSR_defined(0x144) = extensionEnabled(Ext_S) // sip + +/* supervisor mode: address translation */ +function clause is_CSR_defined(0x180) = extensionEnabled(Ext_S) // satp + +/* user mode: counters */ +function clause is_CSR_defined(0xC00) = extensionEnabled(Ext_U) // cycle +function clause is_CSR_defined(0xC01) = extensionEnabled(Ext_U) // time +function clause is_CSR_defined(0xC02) = extensionEnabled(Ext_U) // instret + +function clause is_CSR_defined(0b1100000 /* 0xC00 */ @ index : bits(5) if unsigned(index) >= 3) = extensionEnabled(Ext_Zihpm) & extensionEnabled(Ext_U) // hpmcounter3..31 + +function clause is_CSR_defined(0xC80) = extensionEnabled(Ext_U) & (xlen == 32) // cycleh +function clause is_CSR_defined(0xC81) = extensionEnabled(Ext_U) & (xlen == 32) // timeh +function clause is_CSR_defined(0xC82) = extensionEnabled(Ext_U) & (xlen == 32) // instreth + +function clause is_CSR_defined(0b1100100 /* 0xC80 */ @ index : bits(5) if unsigned(index) >= 3) = extensionEnabled(Ext_Zihpm) & extensionEnabled(Ext_U) & (xlen == 32) // hpmcounterh3..31 + +/* user mode: Zkr */ +function clause is_CSR_defined(0x015) = extensionEnabled(Ext_Zkr) + val check_CSR_access : (csrRW, priv_level, Privilege, bool) -> bool function check_CSR_access(csrrw, csrpr, p, isWrite) = @@ -103,22 +113,24 @@ function check_CSR_access(csrrw, csrpr, p, isWrite) = function check_TVM_SATP(csr : csreg, p : Privilege) -> bool = not(csr == 0x180 & p == Supervisor & mstatus[TVM] == 0b1) -function check_Counteren(csr : csreg, p : Privilege) -> bool = - match(csr, p) { - (0xC00, Supervisor) => mcounteren[CY] == 0b1, - (0xC01, Supervisor) => mcounteren[TM] == 0b1, - (0xC02, Supervisor) => mcounteren[IR] == 0b1, +// There are several features that are controlled by machine/supervisor enable +// bits (m/senvcfg, m/scounteren, etc.). This abstracts that logic. +function feature_enabled_for_priv(p : Privilege, machine_enable_bit : bit, supervisor_enable_bit : bit) -> bool = match p { + Machine => true, + Supervisor => machine_enable_bit == bitone, + User => machine_enable_bit == bitone & (not(extensionEnabled(Ext_S)) | supervisor_enable_bit == bitone), +} - (0xC00, User) => mcounteren[CY] == 0b1 & (not(extensionEnabled(Ext_S)) | scounteren[CY] == 0b1), - (0xC01, User) => mcounteren[TM] == 0b1 & (not(extensionEnabled(Ext_S)) | scounteren[TM] == 0b1), - (0xC02, User) => mcounteren[IR] == 0b1 & (not(extensionEnabled(Ext_S)) | scounteren[IR] == 0b1), - - (_, _) => /* no HPM counters for now */ - if 0xC03 <=_u csr & csr <=_u 0xC1F - then false - else true - } +// Return true if the counter is enabled OR the CSR is not a counter. +function check_Counteren(csr : csreg, p : Privilege) -> bool = { + // Check if it is not a counter. + if csr <_u 0xC00 | 0xC1F <_u csr + then return true; + // Check the relevant bit in m/scounteren. + let index = unsigned(csr[4 .. 0]); + feature_enabled_for_priv(p, mcounteren.bits[index], scounteren.bits[index]) +} /* Seed may only be accessed if we are doing a write, and access has been * allowed in the current priv mode @@ -157,11 +169,11 @@ function check_CSR(csr : csreg, p : Privilege, isWrite : bool) -> bool = * where cancellation can be performed. */ -val speculate_conditional = monadic {ocaml: "Platform.speculate_conditional", interpreter: "excl_res", c: "speculate_conditional", lem: "speculate_conditional_success"} : unit -> bool +val speculate_conditional = impure {interpreter: "excl_res", c: "speculate_conditional", lem: "speculate_conditional_success"} : unit -> bool -val load_reservation = {ocaml: "Platform.load_reservation", interpreter: "Platform.load_reservation", c: "load_reservation", lem: "load_reservation"} : xlenbits -> unit -val match_reservation = {ocaml: "Platform.match_reservation", interpreter: "Platform.match_reservation", lem: "match_reservation", c: "match_reservation"} : xlenbits -> bool -val cancel_reservation = {ocaml: "Platform.cancel_reservation", interpreter: "Platform.cancel_reservation", c: "cancel_reservation", lem: "cancel_reservation"} : unit -> unit +val load_reservation = impure {interpreter: "Platform.load_reservation", c: "load_reservation", lem: "load_reservation"} : xlenbits -> unit +val match_reservation = pure {interpreter: "Platform.match_reservation", lem: "match_reservation", c: "match_reservation"} : xlenbits -> bool +val cancel_reservation = impure {interpreter: "Platform.cancel_reservation", c: "cancel_reservation", lem: "cancel_reservation"} : unit -> unit /* Exception delegation: given an exception and the privilege at which * it occured, returns the privilege at which it should be handled. @@ -169,13 +181,7 @@ val cancel_reservation = {ocaml: "Platform.cancel_reservation", interpreter: "Pl function exception_delegatee(e : ExceptionType, p : Privilege) -> Privilege = { let idx = num_of_ExceptionType(e); let super = bit_to_bool(medeleg.bits[idx]); - /* if S-mode is absent, medeleg delegates to U-mode if 'N' is supported. */ - let user = if extensionEnabled(Ext_S) - then super & extensionEnabled(Ext_N) & bit_to_bool(sedeleg.bits[idx]) - else super & extensionEnabled(Ext_N); - let deleg = if extensionEnabled(Ext_U) & user then User - else if extensionEnabled(Ext_S) & super then Supervisor - else Machine; + let deleg = if extensionEnabled(Ext_S) & super then Supervisor else Machine; /* We cannot transition to a less-privileged mode. */ if privLevel_to_bits(deleg) <_u privLevel_to_bits(p) then p else deleg @@ -192,10 +198,7 @@ function findPendingInterrupt(ip : xlenbits) -> option(InterruptType) = { else if ip[SEI] == 0b1 then Some(I_S_External) else if ip[SSI] == 0b1 then Some(I_S_Software) else if ip[STI] == 0b1 then Some(I_S_Timer) - else if ip[UEI] == 0b1 then Some(I_U_External) - else if ip[USI] == 0b1 then Some(I_U_Software) - else if ip[UTI] == 0b1 then Some(I_U_Timer) - else None() + else None() } /* Process the pending interrupts xip at a privilege according to @@ -211,28 +214,26 @@ union interrupt_set = { function processPending(xip : Minterrupts, xie : Minterrupts, xideleg : xlenbits, priv_enabled : bool) -> interrupt_set = { /* interrupts that are enabled but not delegated are pending */ - let effective_pend = xip.bits & xie.bits & (~ (xideleg)); + let effective_pend = xip.bits & xie.bits & ~(xideleg); /* the others are delegated */ let effective_delg = xip.bits & xideleg; /* we have pending interrupts if this privilege is enabled */ - if priv_enabled & (effective_pend != zero_extend(0b0)) + if priv_enabled & (effective_pend != zeros()) then Ints_Pending(effective_pend) - else if effective_delg != zero_extend(0b0) + else if effective_delg != zeros() then Ints_Delegated(effective_delg) else Ints_Empty() } /* Given the current privilege level, iterate over privileges to get a - * pending set for an enabled privilege. This is only called for M/U or - * M/S/U systems. + * pending set for an enabled privilege. * * We don't use the lowered views of {xie,xip} here, since the spec - * allows for example the M_Timer to be delegated to the U-mode. + * allows for example the M_Timer to be delegated to the S-mode. */ function getPendingSet(priv : Privilege) -> option((xlenbits, Privilege)) = { - assert(extensionEnabled(Ext_U), "no user mode: M/U or M/S/U system required"); let effective_pending = mip.bits & mie.bits; - if effective_pending == zero_extend(0b0) then None() /* fast path */ + if effective_pending == zeros() then None() /* fast path */ else { /* Higher privileges than the current one are implicitly enabled, * while lower privileges are blocked. An unsupported privilege is @@ -240,24 +241,10 @@ function getPendingSet(priv : Privilege) -> option((xlenbits, Privilege)) = { */ let mIE = priv != Machine | (priv == Machine & mstatus[MIE] == 0b1); let sIE = extensionEnabled(Ext_S) & (priv == User | (priv == Supervisor & mstatus[SIE] == 0b1)); - let uIE = extensionEnabled(Ext_N) & (priv == User & mstatus[UIE] == 0b1); match processPending(mip, mie, mideleg.bits, mIE) { Ints_Empty() => None(), - Ints_Pending(p) => let r = (p, Machine) in Some(r), - Ints_Delegated(d) => - if not(extensionEnabled(Ext_S)) then { - if uIE then let r = (d, User) in Some(r) - else None() - } else { - /* the delegated bits are pending for S-mode */ - match processPending(Mk_Minterrupts(d), mie, sideleg.bits, sIE) { - Ints_Empty() => None(), - Ints_Pending(p) => let r = (p, Supervisor) in Some(r), - Ints_Delegated(d) => if uIE - then let r = (d, User) in Some(r) - else None() - } - } + Ints_Pending(p) => Some((p, Machine)), + Ints_Delegated(d) => if sIE then Some((d, Supervisor)) else None(), } } } @@ -266,24 +253,12 @@ function getPendingSet(priv : Privilege) -> option((xlenbits, Privilege)) = { * handled (if any), and the privilege it should be handled at. */ function dispatchInterrupt(priv : Privilege) -> option((InterruptType, Privilege)) = { - /* If we don't have different privilege levels, we don't need to check delegation. - * Absence of U-mode implies absence of S-mode. - */ - if not(extensionEnabled(Ext_U)) | (not(extensionEnabled(Ext_S)) & not(extensionEnabled(Ext_N))) then { - assert(priv == Machine, "invalid current privilege"); - let enabled_pending = mip.bits & mie.bits; - match findPendingInterrupt(enabled_pending) { - Some(i) => let r = (i, Machine) in Some(r), - None() => None() - } - } else { - match getPendingSet(priv) { - None() => None(), - Some(ip, p) => match findPendingInterrupt(ip) { - None() => None(), - Some(i) => let r = (i, p) in Some(r) - } - } + match getPendingSet(priv) { + None() => None(), + Some(ip, p) => match findPendingInterrupt(ip) { + None() => None(), + Some(i) => Some((i, p)), + } } } @@ -293,7 +268,6 @@ union ctl_result = { CTL_TRAP : sync_exception, CTL_SRET : unit, CTL_MRET : unit, - CTL_URET : unit } /* trap value */ @@ -301,7 +275,7 @@ union ctl_result = { function tval(excinfo : option(xlenbits)) -> xlenbits = { match (excinfo) { Some(e) => e, - None() => zero_extend(0b0) + None() => zeros() } } @@ -370,26 +344,7 @@ function trap_handler(del_priv : Privilege, intr : bool, c : exc_code, pc : xlen prepare_trap_vector(del_priv, scause) }, - User => { - assert(extensionEnabled(Ext_U), "no user mode present for delegation"); - - ucause[IsInterrupt] = bool_to_bits(intr); - ucause[Cause] = zero_extend(c); - - mstatus[UPIE] = mstatus[UIE]; - mstatus[UIE] = 0b0; - utval = tval(info); - uepc = pc; - - cur_privilege = del_priv; - - handle_trap_extension(del_priv, pc, ext); - - if get_config_print_reg() - then print_reg("CSR mstatus <- " ^ BitStr(mstatus.bits)); - - prepare_trap_vector(del_priv, ucause) - } + User => internal_error(__FILE__, __LINE__, "Invalid privilege level"), }; } @@ -436,19 +391,6 @@ function exception_handler(cur_priv : Privilege, ctl : ctl_result, prepare_xret_target(Supervisor) & pc_alignment_mask() }, - (_, CTL_URET()) => { - let prev_priv = cur_privilege; - mstatus[UIE] = mstatus[UPIE]; - mstatus[UPIE] = 0b1; - cur_privilege = User; - - if get_config_print_reg() - then print_reg("CSR mstatus <- " ^ BitStr(mstatus.bits)); - if get_config_print_platform() - then print_platform("ret-ing from " ^ to_str(prev_priv) ^ " to " ^ to_str(cur_privilege)); - - prepare_xret_target(User) & pc_alignment_mask() - } } } @@ -474,10 +416,10 @@ function handle_interrupt(i : InterruptType, del_priv : Privilege) -> unit = function init_sys() -> unit = { cur_privilege = Machine; - mhartid = zero_extend(0b0); - mconfigptr = zero_extend(0b0); + mhartid = zeros(); + mconfigptr = zeros(); - misa[MXL] = arch_to_bits(if sizeof(xlen) == 32 then RV32 else RV64); + misa[MXL] = arch_to_bits(if xlen == 32 then RV32 else RV64); misa[A] = 0b1; /* atomics */ misa[C] = bool_to_bits(sys_enable_rvc()); /* RVC */ misa[B] = bool_to_bits(sys_enable_bext()); /* Bit-manipulation */ @@ -492,7 +434,7 @@ function init_sys() -> unit = { /* We currently support both F and D */ misa[F] = bool_to_bits(sys_enable_fdext()); /* single-precision */ - misa[D] = if sizeof(flen) >= 64 + misa[D] = if flen >= 64 then bool_to_bits(sys_enable_fdext()) /* double-precision */ else 0b0; @@ -502,46 +444,38 @@ function init_sys() -> unit = { mstatus[MPP] = privLevel_to_bits(lowest_supported_privLevel()); /* set to little-endian mode */ - if sizeof(xlen) == 64 then { + if xlen == 64 then { mstatus = Mk_Mstatus([mstatus.bits with 37 .. 36 = 0b00]) }; - mstatush.bits = zero_extend(0b0); + mstatush.bits = zeros(); - mip.bits = zero_extend(0b0); - mie.bits = zero_extend(0b0); - mideleg.bits = zero_extend(0b0); - medeleg.bits = zero_extend(0b0); - mtvec.bits = zero_extend(0b0); - mcause.bits = zero_extend(0b0); - mepc = zero_extend(0b0); - mtval = zero_extend(0b0); - mscratch = zero_extend(0b0); + mip.bits = zeros(); + mie.bits = zeros(); + mideleg.bits = zeros(); + medeleg.bits = zeros(); + mtvec.bits = zeros(); + mcause.bits = zeros(); + mepc = zeros(); + mtval = zeros(); + mscratch = zeros(); - mcycle = zero_extend(0b0); - mtime = zero_extend(0b0); + mcycle = zeros(); + mtime = zeros(); - mcounteren.bits = zero_extend(0b0); + mcounteren.bits = zeros(); - minstret = zero_extend(0b0); + minstret = zeros(); minstret_increment = true; - menvcfg.bits = zero_extend(0b0); - senvcfg.bits = zero_extend(0b0); + menvcfg.bits = zeros(); + senvcfg.bits = zeros(); /* initialize vector csrs */ - elen = 0b1; /* ELEN=64 as the common case */ - vlen = 0b0100; /* VLEN=512 as a default value */ - vlenb = to_bits(sizeof(xlen), 2 ^ (get_vlen_pow() - 3)); /* vlenb holds the constant value VLEN/8 */ - /* VLEN value needs to be manually changed currently. - * See riscv_vlen.sail for details. - */ - vstart = zero_extend(0b0); - vxsat = 0b0; - vxrm = 0b00; - vcsr[vxrm] = vxrm; - vcsr[vxsat] = vxsat; - vl = zero_extend(0b0); + vstart = zeros(); + vl = zeros(); + vcsr[vxrm] = 0b00; + vcsr[vxsat] = 0b0; vtype[vill] = 0b1; - vtype[reserved] = zero_extend(0b0); + vtype[reserved] = zeros(); vtype[vma] = 0b0; vtype[vta] = 0b0; vtype[vsew] = 0b000; @@ -552,7 +486,7 @@ function init_sys() -> unit = { // log compatibility with spike if get_config_print_reg() - then print_reg("CSR mstatus <- " ^ BitStr(mstatus.bits) ^ " (input: " ^ BitStr(zero_extend(0b0) : xlenbits) ^ ")") + then print_reg("CSR mstatus <- " ^ BitStr(mstatus.bits) ^ " (input: " ^ BitStr(zeros() : xlenbits) ^ ")") } /* memory access exceptions, defined here for use by the platform model. */ diff --git a/model/riscv_sys_exceptions.sail b/model/riscv_sys_exceptions.sail index 0059e2a..4e4b550 100644 --- a/model/riscv_sys_exceptions.sail +++ b/model/riscv_sys_exceptions.sail @@ -22,7 +22,7 @@ function prepare_trap_vector(p : Privilege, cause : Mcause) -> xlenbits = { let tvec : Mtvec = match p { Machine => mtvec, Supervisor => stvec, - User => utvec + User => internal_error(__FILE__, __LINE__, "Invalid privilege level"), }; match tvec_addr(tvec, cause) { Some(epc) => epc, @@ -42,7 +42,7 @@ function get_xret_target(p) = match p { Machine => mepc, Supervisor => sepc, - User => uepc + User => internal_error(__FILE__, __LINE__, "Invalid privilege level"), } val set_xret_target : (Privilege, xlenbits) -> xlenbits @@ -51,7 +51,7 @@ function set_xret_target(p, value) = { match p { Machine => mepc = target, Supervisor => sepc = target, - User => uepc = target + User => internal_error(__FILE__, __LINE__, "Invalid privilege level"), }; target } @@ -68,9 +68,6 @@ function get_mtvec() -> xlenbits = function get_stvec() -> xlenbits = stvec.bits -function get_utvec() -> xlenbits = - utvec.bits - function set_mtvec(value : xlenbits) -> xlenbits = { mtvec = legalize_tvec(mtvec, value); mtvec.bits @@ -80,8 +77,3 @@ function set_stvec(value : xlenbits) -> xlenbits = { stvec = legalize_tvec(stvec, value); stvec.bits } - -function set_utvec(value : xlenbits) -> xlenbits = { - utvec = legalize_tvec(utvec, value); - utvec.bits -} diff --git a/model/riscv_sys_regs.sail b/model/riscv_sys_regs.sail index fc19d51..e7ca848 100644 --- a/model/riscv_sys_regs.sail +++ b/model/riscv_sys_regs.sail @@ -79,34 +79,42 @@ bitfield Misa : xlenbits = { register misa : Misa /* whether misa is R/W */ -val sys_enable_writable_misa = {c: "sys_enable_writable_misa", ocaml: "Platform.enable_writable_misa", _: "sys_enable_writable_misa"} : unit -> bool +val sys_enable_writable_misa = pure "sys_enable_writable_misa" : unit -> bool /* whether misa.c was enabled at boot */ -val sys_enable_rvc = {c: "sys_enable_rvc", ocaml: "Platform.enable_rvc", _: "sys_enable_rvc"} : unit -> bool +val sys_enable_rvc = pure "sys_enable_rvc" : unit -> bool /* whether misa.{f,d} were enabled at boot */ -val sys_enable_fdext = {c: "sys_enable_fdext", ocaml: "Platform.enable_fdext", _: "sys_enable_fdext"} : unit -> bool +val sys_enable_fdext = pure "sys_enable_fdext" : unit -> bool /* whether Svinval was enabled at boot */ -val sys_enable_svinval = {c: "sys_enable_svinval", ocaml: "Platform.enable_svinval", _: "sys_enable_svinval"} : unit -> bool +val sys_enable_svinval = pure "sys_enable_svinval" : unit -> bool /* whether Zcb was enabled at boot */ -val sys_enable_zcb = {c: "sys_enable_zcb", ocaml: "Platform.enable_zcb", _: "sys_enable_zcb"} : unit -> bool +val sys_enable_zcb = pure "sys_enable_zcb" : unit -> bool /* whether zfinx was enabled at boot */ -val sys_enable_zfinx = {c: "sys_enable_zfinx", ocaml: "Platform.enable_zfinx", _: "sys_enable_zfinx"} : unit -> bool +val sys_enable_zfinx = pure "sys_enable_zfinx" : unit -> bool /* whether the N extension was enabled at boot */ -val sys_enable_next = {c: "sys_enable_next", ocaml: "Platform.enable_next", _: "sys_enable_next"} : unit -> bool +val sys_enable_next = pure "sys_enable_next" : unit -> bool /* Whether FIOM bit of menvcfg/senvcfg is enabled. It must be enabled if supervisor mode is implemented and non-bare addressing modes are supported. */ -val sys_enable_writable_fiom = {c: "sys_enable_writable_fiom", ocaml: "Platform.enable_writable_fiom", _: "sys_enable_writable_fiom"} : unit -> bool +val sys_enable_writable_fiom = pure "sys_enable_writable_fiom" : unit -> bool /* How many PMP entries are implemented. This must be 0, 16 or 64 (this is checked at runtime). */ -val sys_pmp_count = {c: "sys_pmp_count", ocaml: "Platform.pmp_count", _: "sys_pmp_count"} : unit -> range(0, 64) +val sys_pmp_count = pure "sys_pmp_count" : unit -> range(0, 64) /* G parameter that specifies the PMP grain size. The grain size is 2^(G+2), e.g. G=0 -> 4 bytes, G=10 -> 4096 bytes. */ -val sys_pmp_grain = {c: "sys_pmp_grain", ocaml: "Platform.pmp_grain", _: "sys_pmp_grain"} : unit -> range(0, 63) +val sys_pmp_grain = pure "sys_pmp_grain" : unit -> range(0, 63) + +/* Which HPM counters are supported (as a bit mask). Bits [2 .. 0] are ignored. */ +val sys_writable_hpm_counters = pure "sys_writable_hpm_counters" : unit -> bits(32) /* whether misa.v was enabled at boot */ -val sys_enable_vext = {c: "sys_enable_vext", ocaml: "Platform.enable_vext", _: "sys_enable_vext"} : unit -> bool +val sys_enable_vext = pure "sys_enable_vext" : unit -> bool /* whether misa.b was enabled at boot */ -val sys_enable_bext = {c: "sys_enable_bext", ocaml: "Platform.enable_bext", _: "sys_enable_bext"} : unit -> bool +val sys_enable_bext = pure "sys_enable_bext" : unit -> bool + +// CBO extensions. Zicbop cannot be enabled/disabled because it has no effect +// at all on this model. +val sys_enable_zicbom = pure "sys_enable_zicbom" : unit -> bool +val sys_enable_zicboz = pure "sys_enable_zicboz" : unit -> bool /* This function allows an extension to veto a write to Misa if it would violate an alignment restriction on @@ -128,15 +136,16 @@ function legalize_misa(m : Misa, v : xlenbits) -> Misa = { } } -enum clause extension = Ext_N -function clause extensionEnabled(Ext_N) = misa[N] == 0b1 - enum clause extension = Ext_U function clause extensionEnabled(Ext_U) = misa[U] == 0b1 enum clause extension = Ext_S function clause extensionEnabled(Ext_S) = misa[S] == 0b1 +/* Hardware Performance Monitoring counters */ +enum clause extension = Ext_Zihpm +function clause extensionEnabled(Ext_Zihpm) = true + /* * Illegal values legalized to least privileged mode supported. * Note: the only valid combinations of supported modes are M, M+U, M+S+U. @@ -188,11 +197,9 @@ bitfield Mstatus : xlenbits = { MPIE : 7, SPIE : 5, - UPIE : 4, MIE : 3, SIE : 1, - UIE : 0 } register mstatus : Mstatus @@ -202,13 +209,13 @@ function effectivePrivilege(t : AccessType(ext_access_type), m : Mstatus, priv : else priv function get_mstatus_SXL(m : Mstatus) -> arch_xlen = { - if sizeof(xlen) == 32 + if xlen == 32 then arch_to_bits(RV32) else m.bits[35 .. 34] } function set_mstatus_SXL(m : Mstatus, a : arch_xlen) -> Mstatus = { - if sizeof(xlen) == 32 + if xlen == 32 then m else { let m = vector_update_subrange(m.bits, 35, 34, a); @@ -217,13 +224,13 @@ function set_mstatus_SXL(m : Mstatus, a : arch_xlen) -> Mstatus = { } function get_mstatus_UXL(m : Mstatus) -> arch_xlen = { - if sizeof(xlen) == 32 + if xlen == 32 then arch_to_bits(RV32) else m.bits[33 .. 32] } function set_mstatus_UXL(m : Mstatus, a : arch_xlen) -> Mstatus = { - if sizeof(xlen) == 32 + if xlen == 32 then m else { let m = vector_update_subrange(m.bits, 33, 32, a); @@ -261,17 +268,10 @@ function legalize_mstatus(o : Mstatus, v : xlenbits) -> Mstatus = { let m = set_mstatus_UXL(m, get_mstatus_UXL(o)); /* We don't currently support changing MBE and SBE. */ - let m = if sizeof(xlen) == 64 then { + let m = if xlen == 64 then { Mk_Mstatus([m.bits with 37 .. 36 = 0b00]) } else m; - /* Hardwired to zero in the absence of 'U' or 'N'. */ - let m = if not(extensionEnabled(Ext_N)) then { - let m = [m with UPIE = 0b0]; - let m = [m with UIE = 0b0]; - m - } else m; - if not(extensionEnabled(Ext_U)) then { let m = [m with MPRV = 0b0]; m @@ -302,15 +302,12 @@ function in32BitMode() -> bool = { bitfield Minterrupts : xlenbits = { MEI : 11, /* external interrupts */ SEI : 9, - UEI : 8, MTI : 7, /* timers interrupts */ STI : 5, - UTI : 4, MSI : 3, /* software interrupts */ SSI : 1, - USI : 0, } register mip : Minterrupts /* Pending */ register mie : Minterrupts /* Enabled */ @@ -320,26 +317,19 @@ function legalize_mip(o : Minterrupts, v : xlenbits) -> Minterrupts = { /* The only writable bits are the S-mode bits, and with the 'N' * extension, the U-mode bits. */ let v = Mk_Minterrupts(v); - let m = [o with SEI = v[SEI], STI = v[STI], SSI = v[SSI]]; - if extensionEnabled(Ext_U) & extensionEnabled(Ext_N) then { - [m with UEI = v[UEI], UTI = v[UTI], USI = v[USI]] - } else m + [o with SEI = v[SEI], STI = v[STI], SSI = v[SSI]] } function legalize_mie(o : Minterrupts, v : xlenbits) -> Minterrupts = { let v = Mk_Minterrupts(v); - let m = [o with + [o with MEI = v[MEI], MTI = v[MTI], MSI = v[MSI], SEI = v[SEI], STI = v[STI], SSI = v[SSI] - ]; - /* The U-mode bits will be modified if we have the 'N' extension. */ - if extensionEnabled(Ext_U) & extensionEnabled(Ext_N) then { - [m with UEI = v[UEI], UTI = v[UTI], USI = v[USI]] - } else m + ] } function legalize_mideleg(o : Minterrupts, v : xlenbits) -> Minterrupts = { @@ -444,24 +434,26 @@ register mcounteren : Counteren register scounteren : Counteren function legalize_mcounteren(c : Counteren, v : xlenbits) -> Counteren = { - /* no HPM counters yet */ - [c with IR = [v[2]], TM = [v[1]], CY = [v[0]]] + let supported_counters = sys_writable_hpm_counters()[31 .. 3] @ 0b111; + Mk_Counteren(v[31 .. 0] & supported_counters) } function legalize_scounteren(c : Counteren, v : xlenbits) -> Counteren = { - /* no HPM counters yet */ - [c with IR = [v[2]], TM = [v[1]], CY = [v[0]]] + let supported_counters = sys_writable_hpm_counters()[31 .. 3] @ 0b111; + Mk_Counteren(v[31 .. 0] & supported_counters) } bitfield Counterin : bits(32) = { - /* no HPM counters yet */ + HPM : 31 .. 3, IR : 2, CY : 0 } register mcountinhibit : Counterin function legalize_mcountinhibit(c : Counterin, v : xlenbits) -> Counterin = { - [c with IR = [v[2]], CY = [v[0]]] + // Note the 0 in 0b101 is because the mtimer counter can't be paused. + let supported_counters = sys_writable_hpm_counters()[31 .. 3] @ 0b101; + Mk_Counterin(v[31 .. 0] & supported_counters) } register mcycle : bits(64) @@ -487,6 +479,38 @@ function retire_instruction() -> unit = { if minstret_increment then minstret = minstret + 1; } +// HPM (Hardware Performance Monitoring) counters. The lowest three values are +// not used but they are defined for simplicity. +register mhpmcounter : vector(32, bits(64)) + +// HPM events selector. These control what the HPM counters measure. The lowest +// three values are not used but they are defined for simplicity. +register mhpmevent : vector(32, xlenbits) + +// Valid HPM counter indices. The lowest three are used for mcycle, mtime and minstret. +type hpmidx = range(3, 31) + +// Convert the lowest 5 bits of a CSR index to an hpmidx. Asserts if it is 0..2. +function hpmidx_from_bits(b : bits(5)) -> hpmidx = { + let index = unsigned(b); + assert(index >= 3, "unreachable HPM index"); + index +} + +function read_mhpmcounter(index : hpmidx) -> xlenbits = mhpmcounter[index][(xlen - 1) .. 0] +function read_mhpmcounterh(index : hpmidx) -> bits(32) = mhpmcounter[index][63 .. 32] +function read_mhpmevent(index : hpmidx) -> xlenbits = mhpmevent[index] + +// Write the HPM CSRs. These return the new value of the CSR, for use in writeCSR. +function write_mhpmcounter(index : hpmidx, value : xlenbits) -> unit = + if sys_writable_hpm_counters()[index] == bitone then mhpmcounter[index][(xlen - 1) .. 0] = value + +function write_mhpmcounterh(index : hpmidx, value : bits(32)) -> unit = + if sys_writable_hpm_counters()[index] == bitone then mhpmcounter[index][63 .. 32] = value + +function write_mhpmevent(index : hpmidx, value : xlenbits) -> unit = + if sys_writable_hpm_counters()[index] == bitone then mhpmevent[index] = value + /* informational registers */ register mvendorid : bits(32) register mimpid : xlenbits @@ -510,9 +534,7 @@ bitfield Sstatus : xlenbits = { VS : 10 .. 9, SPP : 8, SPIE : 5, - UPIE : 4, SIE : 1, - UIE : 0 } /* sstatus is a view of mstatus, so there is no register defined. */ @@ -528,108 +550,80 @@ function set_sstatus_UXL(s : Sstatus, a : arch_xlen) -> Sstatus = { } function lower_mstatus(m : Mstatus) -> Sstatus = { - let s = Mk_Sstatus(zero_extend(0b0)); + let s = Mk_Sstatus(zeros()); let s = [s with SD = m[SD]]; let s = set_sstatus_UXL(s, get_mstatus_UXL(m)); - let s = [s with MXR = m[MXR]]; - let s = [s with SUM = m[SUM]]; - let s = [s with XS = m[XS]]; - let s = [s with FS = m[FS]]; - let s = [s with VS = m[VS]]; - let s = [s with SPP = m[SPP]]; - let s = [s with SPIE = m[SPIE]]; - let s = [s with UPIE = m[UPIE]]; - let s = [s with SIE = m[SIE]]; - let s = [s with UIE = m[UIE]]; - s + + [s with + MXR = m[MXR], + SUM = m[SUM], + XS = m[XS], + FS = m[FS], + VS = m[VS], + SPP = m[SPP], + SPIE = m[SPIE], + SIE = m[SIE], + ] } function lift_sstatus(m : Mstatus, s : Sstatus) -> Mstatus = { - let m = [m with MXR = s[MXR]]; - let m = [m with SUM = s[SUM]]; - - let m = [m with XS = s[XS]]; - // See comment for mstatus.FS. - let m = [m with FS = s[FS]]; - let m = [m with VS = s[VS]]; - let dirty = extStatus_of_bits(m[FS]) == Dirty | extStatus_of_bits(m[XS]) == Dirty | - extStatus_of_bits(m[VS]) == Dirty; - let m = [m with SD = bool_to_bits(dirty)]; - - let m = [m with SPP = s[SPP]]; - let m = [m with SPIE = s[SPIE]]; - let m = [m with UPIE = s[UPIE]]; - let m = [m with SIE = s[SIE]]; - let m = [m with UIE = s[UIE]]; - m + let dirty = extStatus_of_bits(s[FS]) == Dirty | extStatus_of_bits(s[XS]) == Dirty | + extStatus_of_bits(s[VS]) == Dirty; + + [m with + SD = bool_to_bits(dirty), + MXR = s[MXR], + SUM = s[SUM], + XS = s[XS], + FS = s[FS], + VS = s[VS], + SPP = s[SPP], + SPIE = s[SPIE], + SIE = s[SIE], + ] } function legalize_sstatus(m : Mstatus, v : xlenbits) -> Mstatus = { legalize_mstatus(m, lift_sstatus(m, Mk_Sstatus(v)).bits) } -bitfield Sedeleg : xlenbits = { - UEnvCall : 8, - SAMO_Access_Fault : 7, - SAMO_Addr_Align : 6, - Load_Access_Fault : 5, - Load_Addr_Align : 4, - Breakpoint : 3, - Illegal_Instr : 2, - Fetch_Access_Fault: 1, - Fetch_Addr_Align : 0 -} -register sedeleg : Sedeleg -function legalize_sedeleg(s : Sedeleg, v : xlenbits) -> Sedeleg = { - Mk_Sedeleg(zero_extend(v[8..0])) -} bitfield Sinterrupts : xlenbits = { SEI : 9, /* external interrupts */ - UEI : 8, STI : 5, /* timers interrupts */ - UTI : 4, SSI : 1, /* software interrupts */ - USI : 0 } /* Provides the sip read view of mip (m) as delegated by mideleg (d). */ function lower_mip(m : Minterrupts, d : Minterrupts) -> Sinterrupts = { - let s : Sinterrupts = Mk_Sinterrupts(zero_extend(0b0)); - let s = [s with SEI = m[SEI] & d[SEI]]; - let s = [s with STI = m[STI] & d[STI]]; - let s = [s with SSI = m[SSI] & d[SSI]]; + let s : Sinterrupts = Mk_Sinterrupts(zeros()); - let s = [s with UEI = m[UEI] & d[UEI]]; - let s = [s with UTI = m[UTI] & d[UTI]]; - let s = [s with USI = m[USI] & d[USI]]; - s + [s with + SEI = m[SEI] & d[SEI], + STI = m[STI] & d[STI], + SSI = m[SSI] & d[SSI], + ] } /* Provides the sie read view of mie (m) as delegated by mideleg (d). */ function lower_mie(m : Minterrupts, d : Minterrupts) -> Sinterrupts = { - let s : Sinterrupts = Mk_Sinterrupts(zero_extend(0b0)); - let s = [s with SEI = m[SEI] & d[SEI]]; - let s = [s with STI = m[STI] & d[STI]]; - let s = [s with SSI = m[SSI] & d[SSI]]; - let s = [s with UEI = m[UEI] & d[UEI]]; - let s = [s with UTI = m[UTI] & d[UTI]]; - let s = [s with USI = m[USI] & d[USI]]; - s + let s : Sinterrupts = Mk_Sinterrupts(zeros()); + + [s with + SEI = m[SEI] & d[SEI], + STI = m[STI] & d[STI], + SSI = m[SSI] & d[SSI], + ] } /* Returns the new value of mip from the previous mip (o) and the written sip (s) as delegated by mideleg (d). */ function lift_sip(o : Minterrupts, d : Minterrupts, s : Sinterrupts) -> Minterrupts = { let m : Minterrupts = o; let m = if d[SSI] == 0b1 then [m with SSI = s[SSI]] else m; - if extensionEnabled(Ext_N) then { - let m = if d[UEI] == 0b1 then [m with UEI = s[UEI]] else m; - let m = if d[USI] == 0b1 then [m with USI = s[USI]] else m; - m - } else m + m } function legalize_sip(m : Minterrupts, d : Minterrupts, v : xlenbits) -> Minterrupts = { @@ -642,19 +636,13 @@ function lift_sie(o : Minterrupts, d : Minterrupts, s : Sinterrupts) -> Minterru let m = if d[SEI] == 0b1 then [m with SEI = s[SEI]] else m; let m = if d[STI] == 0b1 then [m with STI = s[STI]] else m; let m = if d[SSI] == 0b1 then [m with SSI = s[SSI]] else m; - if extensionEnabled(Ext_N) then { - let m = if d[UEI] == 0b1 then [m with UEI = s[UEI]] else m; - let m = if d[UTI] == 0b1 then [m with UTI = s[UTI]] else m; - let m = if d[USI] == 0b1 then [m with USI = s[USI]] else m; - m - } else m + m } function legalize_sie(m : Minterrupts, d : Minterrupts, v : xlenbits) -> Minterrupts = { lift_sie(m, d, Mk_Sinterrupts(v)) } -register sideleg : Sinterrupts /* other non-VM related supervisor state */ register stvec : Mtvec @@ -728,8 +716,7 @@ mapping opst_code : seed_opst <-> bits(2) = { * for this function is unavailable when it's first encountered in * read_seed_csr. Hence it appears here. */ -val get_16_random_bits = { - ocaml: "Platform.get_16_random_bits", +val get_16_random_bits = impure { interpreter: "Platform.get_16_random_bits", c: "plat_get_16_random_bits", lem: "plat_get_16_random_bits" @@ -748,7 +735,7 @@ function read_seed_csr() -> xlenbits = { } /* Writes to the seed CSR are ignored */ -function write_seed_csr () -> option(xlenbits) = None() +function write_seed_csr () -> xlenbits = zeros() bitfield MEnvcfg : bits(64) = { // Supervisor TimeCmp Extension @@ -811,10 +798,11 @@ function is_fiom_active() -> bool = { } /* vector csrs */ register vstart : bits(16) /* use the largest possible length of vstart */ -register vxsat : bits(1) -register vxrm : bits(2) register vl : xlenbits -register vlenb : xlenbits + +function get_vlenb() -> xlenbits = { + to_bits(xlen, (2 ^ (get_vlen_pow()) / 8)) +} bitfield Vtype : xlenbits = { vill : xlen - 1, diff --git a/model/riscv_termination_rv64.sail b/model/riscv_termination_rv64.sail index 6beabf1..d1c30b9 100644 --- a/model/riscv_termination_rv64.sail +++ b/model/riscv_termination_rv64.sail @@ -6,5 +6,4 @@ /* SPDX-License-Identifier: BSD-2-Clause */ /*=======================================================================================*/ -termination_measure walk39(_,_,_,_,_,_,level,_, _) = level -termination_measure walk48(_,_,_,_,_,_,level,_, _) = level +termination_measure pt_walk(_,_,_,_,_,_,_,level,_,_) = level diff --git a/model/riscv_types.sail b/model/riscv_types.sail index 166aee0..4a4de07 100644 --- a/model/riscv_types.sail +++ b/model/riscv_types.sail @@ -22,11 +22,11 @@ scattered function extensionEnabled /* this value is only defined for the runtime platform for ELF loading * checks, and not used in the model. */ -let xlen_val = sizeof(xlen) +let xlen_val = xlen -let xlen_max_unsigned = 2 ^ sizeof(xlen) - 1 -let xlen_max_signed = 2 ^ (sizeof(xlen) - 1) - 1 -let xlen_min_signed = 0 - 2 ^ (sizeof(xlen) - 1) +let xlen_max_unsigned = 2 ^ xlen - 1 +let xlen_max_signed = 2 ^ (xlen - 1) - 1 +let xlen_min_signed = 0 - 2 ^ (xlen - 1) type half = bits(16) type word = bits(32) @@ -78,23 +78,6 @@ function arch_to_bits(a : Architecture) -> arch_xlen = RV128 => 0b11 } - -/* model-internal exceptions */ - -union exception = { - Error_not_implemented : string, - Error_internal_error : unit -} - -val not_implemented : forall ('a : Type). string -> 'a -function not_implemented message = throw(Error_not_implemented(message)) - -val internal_error : forall ('a : Type). (string, int, string) -> 'a -function internal_error(file, line, s) = { - assert (false, file ^ ":" ^ dec_str(line) ^ ": " ^ s); - throw Error_internal_error() -} - /* privilege levels */ type priv_level = bits(2) @@ -346,6 +329,8 @@ enum amoop = {AMOSWAP, AMOADD, AMOXOR, AMOAND, AMOOR, AMOMIN, AMOMAX, AMOMINU, AMOMAXU} /* AMO ops */ enum csrop = {CSRRW, CSRRS, CSRRC} /* CSR ops */ +enum cbop_zicbom = {CBO_CLEAN, CBO_FLUSH, CBO_INVAL} /* Zicbom ops */ + enum brop_zba = {RISCV_SH1ADD, RISCV_SH2ADD, RISCV_SH3ADD} enum brop_zbb = {RISCV_ANDN, RISCV_ORN, RISCV_XNOR, RISCV_MAX, @@ -406,5 +391,5 @@ struct mul_op = { val report_invalid_width : forall ('a : Type). (string, int, word_width, string) -> 'a function report_invalid_width(f , l, w, k) -> 'a = { internal_error(f, l, "Invalid width, " ^ size_mnemonic(w) ^ ", for " ^ k ^ - " with xlen=" ^ dec_str(sizeof(xlen))) + " with xlen=" ^ dec_str(xlen)) } diff --git a/model/riscv_vext_control.sail b/model/riscv_vext_control.sail index 3344d7c..167b44a 100755 --- a/model/riscv_vext_control.sail +++ b/model/riscv_vext_control.sail @@ -6,23 +6,23 @@ /* SPDX-License-Identifier: BSD-2-Clause */ /*=======================================================================================*/ -function clause ext_is_CSR_defined (0x008) = true -function clause ext_is_CSR_defined (0xC20) = true -function clause ext_is_CSR_defined (0xC21) = true -function clause ext_is_CSR_defined (0xC22) = true +function clause is_CSR_defined (0x008) = true +function clause is_CSR_defined (0x009) = true +function clause is_CSR_defined (0x00A) = true +function clause is_CSR_defined (0x00F) = true +function clause is_CSR_defined (0xC20) = true +function clause is_CSR_defined (0xC21) = true +function clause is_CSR_defined (0xC22) = true -function clause ext_is_CSR_defined (0x009) = true -function clause ext_is_CSR_defined (0x00A) = true -function clause ext_is_CSR_defined (0x00F) = true +function clause read_CSR(0x008) = zero_extend(vstart) +function clause read_CSR(0x009) = zero_extend(vcsr[vxsat]) +function clause read_CSR(0x00A) = zero_extend(vcsr[vxrm]) +function clause read_CSR(0x00F) = zero_extend(vcsr.bits) +function clause read_CSR(0xC20) = vl +function clause read_CSR(0xC21) = vtype.bits +function clause read_CSR(0xC22) = get_vlenb() -function clause ext_read_CSR (0x009) = Some (zero_extend(vcsr[vxsat])) -function clause ext_read_CSR (0x00A) = Some (zero_extend(vcsr[vxrm])) -function clause ext_read_CSR (0x00F) = Some (zero_extend(vcsr.bits)) - -function clause ext_read_CSR (0x009) = Some (zero_extend(vcsr[vxsat])) -function clause ext_read_CSR (0x00A) = Some (zero_extend(vcsr[vxrm])) -function clause ext_read_CSR (0x00F) = Some (zero_extend(vcsr.bits)) - -function clause ext_write_CSR (0x009, value) = { ext_write_vcsr (vcsr[vxrm], value[0 .. 0]); Some(zero_extend(vcsr[vxsat])) } -function clause ext_write_CSR (0x00A, value) = { ext_write_vcsr (value[1 .. 0], vcsr[vxsat]); Some(zero_extend(vcsr[vxrm])) } -function clause ext_write_CSR (0x00F, value) = { ext_write_vcsr (value [2 .. 1], value [0 .. 0]); Some(zero_extend(vcsr.bits)) } +function clause write_CSR(0x008, value) = { let vstart_length = get_vlen_pow(); vstart = zero_extend(16, value[(vstart_length - 1) .. 0]); zero_extend(vstart) } +function clause write_CSR(0x009, value) = { ext_write_vcsr (vcsr[vxrm], value[0 .. 0]); zero_extend(vcsr[vxsat]) } +function clause write_CSR(0x00A, value) = { ext_write_vcsr (value[1 .. 0], vcsr[vxsat]); zero_extend(vcsr[vxrm]) } +function clause write_CSR(0x00F, value) = { ext_write_vcsr (value [2 .. 1], value [0 .. 0]); zero_extend(vcsr.bits) } diff --git a/model/riscv_vext_regs.sail b/model/riscv_vext_regs.sail index 8d96f12..6b1b98d 100644 --- a/model/riscv_vext_regs.sail +++ b/model/riscv_vext_regs.sail @@ -87,48 +87,43 @@ function dirty_v_context_if_present() -> unit = { } function rV (r : regno) -> vregtype = { - let zero_vreg : vregtype = zeros(); - let v : vregtype = - match r { - 0 => vr0, - 1 => vr1, - 2 => vr2, - 3 => vr3, - 4 => vr4, - 5 => vr5, - 6 => vr6, - 7 => vr7, - 8 => vr8, - 9 => vr9, - 10 => vr10, - 11 => vr11, - 12 => vr12, - 13 => vr13, - 14 => vr14, - 15 => vr15, - 16 => vr16, - 17 => vr17, - 18 => vr18, - 19 => vr19, - 20 => vr20, - 21 => vr21, - 22 => vr22, - 23 => vr23, - 24 => vr24, - 25 => vr25, - 26 => vr26, - 27 => vr27, - 28 => vr28, - 29 => vr29, - 30 => vr30, - 31 => vr31, - _ => {assert(false, "invalid vector register number"); zero_vreg} - }; - v + match r { + 0 => vr0, + 1 => vr1, + 2 => vr2, + 3 => vr3, + 4 => vr4, + 5 => vr5, + 6 => vr6, + 7 => vr7, + 8 => vr8, + 9 => vr9, + 10 => vr10, + 11 => vr11, + 12 => vr12, + 13 => vr13, + 14 => vr14, + 15 => vr15, + 16 => vr16, + 17 => vr17, + 18 => vr18, + 19 => vr19, + 20 => vr20, + 21 => vr21, + 22 => vr22, + 23 => vr23, + 24 => vr24, + 25 => vr25, + 26 => vr26, + 27 => vr27, + 28 => vr28, + 29 => vr29, + 30 => vr30, + 31 => vr31, + } } -function wV (r : regno, in_v : vregtype) -> unit = { - let v = in_v; +function wV (r : regno, v : vregtype) -> unit = { match r { 0 => vr0 = v, 1 => vr1 = v, @@ -162,12 +157,10 @@ function wV (r : regno, in_v : vregtype) -> unit = { 29 => vr29 = v, 30 => vr30 = v, 31 => vr31 = v, - _ => assert(false, "invalid vector register number") }; dirty_v_context(); - let VLEN = unsigned(vlenb) * 8; assert(0 < VLEN & VLEN <= sizeof(vlenmax)); if get_config_print_reg() then print_reg("v" ^ dec_str(r) ^ " <- " ^ BitStr(v[VLEN - 1 .. 0])); @@ -235,20 +228,19 @@ function ext_write_vcsr (vxrm_val, vxsat_val) = { /* num_elem means max(VLMAX,VLEN/SEW)) according to Section 5.4 of RVV spec */ val get_num_elem : (int, int) -> nat function get_num_elem(LMUL_pow, SEW) = { - let VLEN = unsigned(vlenb) * 8; let LMUL_pow_reg = if LMUL_pow < 0 then 0 else LMUL_pow; /* Ignore lmul < 1 so that the entire vreg is read, allowing all masking to * be handled in init_masked_result */ - let num_elem = int_power(2, LMUL_pow_reg) * VLEN / SEW; + let num_elem = 2 ^ (LMUL_pow_reg) * VLEN / SEW; assert(num_elem > 0); num_elem } /* Reads a single vreg into multiple elements */ -val read_single_vreg : forall 'n 'm, 'n >= 0. (int('n), int('m), regidx) -> vector('n, dec, bits('m)) +val read_single_vreg : forall 'n 'm, 'n >= 0 & 'm >= 0. (int('n), int('m), regidx) -> vector('n, bits('m)) function read_single_vreg(num_elem, SEW, vrid) = { let bv : vregtype = V(vrid); - var result : vector('n, dec, bits('m)) = undefined; + var result : vector('n, bits('m)) = vector_init(zeros()); assert(8 <= SEW & SEW <= 64); foreach (i from 0 to (num_elem - 1)) { @@ -260,9 +252,9 @@ function read_single_vreg(num_elem, SEW, vrid) = { } /* Writes multiple elements into a single vreg */ -val write_single_vreg : forall 'n 'm, 'n >= 0. (int('n), int('m), regidx, vector('n, dec, bits('m))) -> unit +val write_single_vreg : forall 'n 'm, 'n >= 0. (int('n), int('m), regidx, vector('n, bits('m))) -> unit function write_single_vreg(num_elem, SEW, vrid, v) = { - r : vregtype = zeros(); + var r : vregtype = zeros(); assert(8 <= SEW & SEW <= 64); foreach (i from (num_elem - 1) downto 0) { @@ -274,10 +266,9 @@ function write_single_vreg(num_elem, SEW, vrid, v) = { } /* The general vreg reading operation with num_elem as max(VLMAX,VLEN/SEW)) */ -val read_vreg : forall 'n 'm 'p, 'n >= 0. (int('n), int('m), int('p), regidx) -> vector('n, dec, bits('m)) +val read_vreg : forall 'n 'm 'p, 'n >= 0 & 'm >= 0. (int('n), int('m), int('p), regidx) -> vector('n, bits('m)) function read_vreg(num_elem, SEW, LMUL_pow, vrid) = { - var result : vector('n, dec, bits('m)) = undefined; - let VLEN = unsigned(vlenb) * 8; + var result : vector('n, bits('m)) = vector_init(zeros()); let LMUL_pow_reg = if LMUL_pow < 0 then 0 else LMUL_pow; /* Check for valid vrid */ @@ -297,7 +288,7 @@ function read_vreg(num_elem, SEW, LMUL_pow, vrid) = { let r_start_i : int = i_lmul * 'num_elem_single; let r_end_i : int = r_start_i + 'num_elem_single - 1; let vrid_lmul : regidx = vrid + to_bits(5, i_lmul); - let single_result : vector('num_elem_single, dec, bits('m)) = read_single_vreg('num_elem_single, SEW, vrid_lmul); + let single_result : vector('num_elem_single, bits('m)) = read_single_vreg('num_elem_single, SEW, vrid_lmul); foreach (r_i from r_start_i to r_end_i) { let s_i : int = r_i - r_start_i; assert(0 <= r_i & r_i < num_elem); @@ -314,27 +305,25 @@ function read_vreg(num_elem, SEW, LMUL_pow, vrid) = { /* Single element reading operation */ val read_single_element : forall 'm 'x, 8 <= 'm <= 128. (int('m), int('x), regidx) -> bits('m) function read_single_element(EEW, index, vrid) = { - let VLEN = unsigned(vlenb) * 8; assert(VLEN >= EEW); let 'elem_per_reg : int = VLEN / EEW; assert('elem_per_reg >= 0); let real_vrid : regidx = vrid + to_bits(5, index / 'elem_per_reg); let real_index : int = index % 'elem_per_reg; - let vrid_val : vector('elem_per_reg, dec, bits('m)) = read_single_vreg('elem_per_reg, EEW, real_vrid); + let vrid_val : vector('elem_per_reg, bits('m)) = read_single_vreg('elem_per_reg, EEW, real_vrid); assert(0 <= real_index & real_index < 'elem_per_reg); vrid_val[real_index] } /* The general vreg writing operation with num_elem as max(VLMAX,VLEN/SEW)) */ -val write_vreg : forall 'n 'm 'p, 'n >= 0. (int('n), int('m), int('p), regidx, vector('n, dec, bits('m))) -> unit +val write_vreg : forall 'n 'm 'p, 'n >= 0 & 'm >= 0. (int('n), int('m), int('p), regidx, vector('n, bits('m))) -> unit function write_vreg(num_elem, SEW, LMUL_pow, vrid, vec) = { - let VLEN = unsigned(vlenb) * 8; let LMUL_pow_reg = if LMUL_pow < 0 then 0 else LMUL_pow; let 'num_elem_single : int = VLEN / SEW; assert('num_elem_single >= 0); foreach (i_lmul from 0 to (2 ^ LMUL_pow_reg - 1)) { - var single_vec : vector('num_elem_single, dec, bits('m)) = undefined; + var single_vec : vector('num_elem_single, bits('m)) = vector_init(zeros()); let vrid_lmul : regidx = vrid + to_bits(5, i_lmul); let r_start_i : int = i_lmul * 'num_elem_single; let r_end_i : int = r_start_i + 'num_elem_single - 1; @@ -351,14 +340,13 @@ function write_vreg(num_elem, SEW, LMUL_pow, vrid, vec) = { /* Single element writing operation */ val write_single_element : forall 'm 'x, 8 <= 'm <= 128. (int('m), int('x), regidx, bits('m)) -> unit function write_single_element(EEW, index, vrid, value) = { - let VLEN = unsigned(vlenb) * 8; let 'elem_per_reg : int = VLEN / EEW; assert('elem_per_reg >= 0); let real_vrid : regidx = vrid + to_bits(5, index / 'elem_per_reg); let real_index : int = index % 'elem_per_reg; - let vrid_val : vector('elem_per_reg, dec, bits('m)) = read_single_vreg('elem_per_reg, EEW, real_vrid); - r : vregtype = zeros(); + let vrid_val : vector('elem_per_reg, bits('m)) = read_single_vreg('elem_per_reg, EEW, real_vrid); + var r : vregtype = zeros(); foreach (i from ('elem_per_reg - 1) downto 0) { r = r << EEW; if i == real_index then { @@ -371,47 +359,44 @@ function write_single_element(EEW, index, vrid, value) = { } /* Mask register reading operation with num_elem as max(VLMAX,VLEN/SEW)) */ -val read_vmask : forall 'n, 'n >= 0. (int('n), bits(1), regidx) -> vector('n, dec, bool) +val read_vmask : forall 'n, 'n >= 0. (int('n), bits(1), regidx) -> vector('n, bool) function read_vmask(num_elem, vm, vrid) = { - let VLEN = unsigned(vlenb) * 8; assert(num_elem <= sizeof(vlenmax)); let vreg_val : vregtype = V(vrid); - var result : vector('n, dec, bool) = undefined; + var result : vector('n, bool) = vector_init(true); + + if vm == 0b1 then { + return result + }; foreach (i from 0 to (num_elem - 1)) { - if vm == 0b1 then { - result[i] = true - } else { - result[i] = bit_to_bool(vreg_val[i]) - } + result[i] = bit_to_bool(vreg_val[i]) }; result } /* This is a special version of read_vmask for carry/borrow instructions, where vm=1 means no carry */ -val read_vmask_carry : forall 'n, 'n >= 0. (int('n), bits(1), regidx) -> vector('n, dec, bool) +val read_vmask_carry : forall 'n, 'n >= 0. (int('n), bits(1), regidx) -> vector('n, bool) function read_vmask_carry(num_elem, vm, vrid) = { - let VLEN = unsigned(vlenb) * 8; - assert(0 < num_elem & num_elem <= sizeof(vlenmax)); + assert(num_elem <= sizeof(vlenmax)); let vreg_val : vregtype = V(vrid); - var result : vector('n, dec, bool) = undefined; + var result : vector('n, bool) = vector_init(false); + + if vm == 0b1 then { + return result + }; foreach (i from 0 to (num_elem - 1)) { - if vm == 0b1 then { - result[i] = false - } else { - result[i] = bit_to_bool(vreg_val[i]) - } + result[i] = bit_to_bool(vreg_val[i]) }; result } /* Mask register writing operation with num_elem as max(VLMAX,VLEN/SEW)) */ -val write_vmask : forall 'n, 'n >= 0. (int('n), regidx, vector('n, dec, bool)) -> unit +val write_vmask : forall 'n, 'n >= 0. (int('n), regidx, vector('n, bool)) -> unit function write_vmask(num_elem, vrid, v) = { - let VLEN = unsigned(vlenb) * 8; assert(0 < VLEN & VLEN <= sizeof(vlenmax)); assert(0 < num_elem & num_elem <= VLEN); let vreg_val : vregtype = V(vrid); diff --git a/model/riscv_vlen.sail b/model/riscv_vlen.sail index 5e45290..33a5292 100644 --- a/model/riscv_vlen.sail +++ b/model/riscv_vlen.sail @@ -6,48 +6,19 @@ /* SPDX-License-Identifier: BSD-2-Clause */ /*=======================================================================================*/ -register elen : bits(1) +val sys_vector_elen_exp = pure "sys_vector_elen_exp" : unit -> range(3, 16) -val get_elen_pow : unit -> {5, 6} +function get_elen_pow() -> range(3, 16) = sys_vector_elen_exp() -function get_elen_pow() = match elen { - 0b0 => 5, - 0b1 => 6 -} /* Note: ELEN=32 requires a different encoding of the CSR vtype. * The current version of vtype implementation corresponds to the ELEN=64 configuration. * TODO: the configurarion of ELEN and its corresponding vtype implementations. */ -register vlen : bits(4) +val sys_vector_vlen_exp = pure "sys_vector_vlen_exp" : unit -> range(3, 16) -val get_vlen_pow : unit -> {5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16} - -function get_vlen_pow() = match vlen { - 0b0000 => 5, - 0b0001 => 6, - 0b0010 => 7, - 0b0011 => 8, - 0b0100 => 9, - 0b0101 => 10, - 0b0110 => 11, - 0b0111 => 12, - 0b1000 => 13, - 0b1001 => 14, - 0b1010 => 15, - _ => 16 -} +function get_vlen_pow() -> range(3, 16) = sys_vector_vlen_exp() type vlenmax : Int = 65536 -/* Note: At present, the values of elen and vlen need to be manually speficied - * in the init_sys() function of riscv_sys_control.sail before compiling the emulators, - * e.g., - * vlen = 0b0101; - * elen = 0b1; - * means VLEN = 1024 and ELEN = 64, - * They will be configurable when user-specified configuration is supported in Sail. - * - * Also, VLEN >= ELEN must be satisfied and this condition check should be added - * after their initialization. - */ +let VLEN = 2 ^ get_vlen_pow() diff --git a/model/riscv_vmem.sail b/model/riscv_vmem.sail index e846439..6b39435 100644 --- a/model/riscv_vmem.sail +++ b/model/riscv_vmem.sail @@ -40,7 +40,7 @@ function vpn_j_of_va(sv_params : SV_Params, va : bits(64), level : PTW_Level) -> bits(64) = { let lsb : range(0,63) = pagesize_bits + level * sv_params.vpn_size_bits; - assert (lsb < sizeof(xlen)); + assert (lsb < xlen); let mask : bits(64) = zero_extend(ones(sv_params.vpn_size_bits)); ((va >> lsb) & mask) } @@ -101,7 +101,7 @@ function pt_walk(sv_params, // Below, 'pte_phys_addr' is XLEN bits because it's an arg to // 'mem_read_priv()' [riscv_mem.sail] where it's declared as xlenbits. // That def and this use need to be fixed together (TODO) - let pte_phys_addr : xlenbits = pte_addr[(sizeof(xlen) - 1) .. 0]; + let pte_phys_addr : xlenbits = pte_addr[(xlen - 1) .. 0]; // Read this-level PTE from mem let mem_result = mem_read_priv(Read(Data), // AccessType @@ -187,22 +187,22 @@ function legalize_satp(a : Architecture, o : xlenbits, // previous value of satp v : xlenbits) // proposed new value of satp -> xlenbits = { // new legal value of satp - if sizeof(xlen) == 32 then { + if xlen == 32 then { // The slice and extend ops below are no-ops when xlen==32, // but appease the type-checker when xlen==64 (when this code is not executed!) let o32 : bits(32) = o[31 .. 0]; let v32 : bits(32) = v[31 .. 0]; let new_satp : bits(32) = legalize_satp32(a, o32, v32); zero_extend(new_satp); - } else if sizeof(xlen) == 64 then { + } else if xlen == 64 then { // The extend and truncate ops below are no-ops when xlen==64, // but appease the type-checker when xlen==32 (when this code is not executed!) let o64 : bits(64) = zero_extend(o); let v64 : bits(64) = zero_extend(v); let new_satp : bits(64) = legalize_satp64(a, o64, v64); - truncate(new_satp, sizeof(xlen)) + truncate(new_satp, xlen) } else - internal_error(__FILE__, __LINE__, "Unsupported xlen" ^ dec_str(sizeof(xlen))) + internal_error(__FILE__, __LINE__, "Unsupported xlen" ^ dec_str(xlen)) } // ---------------- @@ -211,18 +211,18 @@ function legalize_satp(a : Architecture, // ASID is 9b in Sv32, 16b in Sv39/Sv48/Sv57: we use 16b for both // PRIVATE function satp_to_asid(satp_val : xlenbits) -> asidbits = - if sizeof(xlen) == 32 then zero_extend(Mk_Satp32(satp_val)[Asid]) - else if sizeof(xlen) == 64 then Mk_Satp64(satp_val)[Asid] + if xlen == 32 then zero_extend(Mk_Satp32(satp_val)[Asid]) + else if xlen == 64 then Mk_Satp64(satp_val)[Asid] else internal_error(__FILE__, __LINE__, - "Unsupported xlen" ^ dec_str(sizeof(xlen))) + "Unsupported xlen" ^ dec_str(xlen)) // Result is 64b to cover both RV32 and RV64 addrs // PRIVATE function satp_to_PT_base(satp_val : xlenbits) -> bits(64) = { - let ppn = if sizeof(xlen) == 32 then zero_extend (64, Mk_Satp32(satp_val)[PPN]) - else if sizeof(xlen) == 64 then zero_extend (64, Mk_Satp64(satp_val)[PPN]) + let ppn = if xlen == 32 then zero_extend (64, Mk_Satp32(satp_val)[PPN]) + else if xlen == 64 then zero_extend (64, Mk_Satp64(satp_val)[PPN]) else internal_error(__FILE__, __LINE__, - "Unsupported xlen" ^ dec_str(sizeof(xlen))); + "Unsupported xlen" ^ dec_str(xlen)); ppn << pagesize_bits } @@ -231,12 +231,12 @@ function satp_to_PT_base(satp_val : xlenbits) -> bits(64) = { function translationMode(priv : Privilege) -> SATPMode = { if priv == Machine then Sbare - else if sizeof(xlen) == 32 then + else if xlen == 32 then match Mk_Satp32(satp)[Mode] { 0b0 => Sbare, 0b1 => Sv32 } - else if sizeof(xlen) == 64 then { + else if xlen == 64 then { // Translation mode is based on mstatus.SXL, which could be RV32 when xlen==64 let arch = architecture(get_mstatus_SXL(mstatus)); match arch { @@ -316,7 +316,7 @@ function translate_TLB_hit(sv_params : SV_Params, // Writeback the PTE (which has new A/D bits) let n_ent = {ent with pte=pte'}; write_TLB(tlb_index, n_ent); - let pte_phys_addr = ent.pteAddr[(sizeof(xlen) - 1) .. 0]; + let pte_phys_addr = ent.pteAddr[(xlen - 1) .. 0]; match write_pte(pte_phys_addr, 2 ^ sv_params.log_pte_size_bytes, pte') { MemValue(_) => (), @@ -362,7 +362,7 @@ function translate_TLB_miss(sv_params : SV_Params, TR_Failure(PTW_PTE_Update(), ext_ptw) else { // Writeback the PTE (which has new A/D bits) - let pte_phys_addr = pteAddr[(sizeof(xlen) - 1) .. 0]; + let pte_phys_addr = pteAddr[(xlen - 1) .. 0]; match write_pte(pte_phys_addr, 2 ^ sv_params.log_pte_size_bytes, pte') { MemValue(_) => { @@ -435,7 +435,7 @@ function translateAddr(vAddr : xlenbits, init_ext_ptw); // Fixup result PA or exception match tr_result1 { - TR_Address(pa, ext_ptw) => TR_Address(truncate(pa, sizeof(xlen)), ext_ptw), + TR_Address(pa, ext_ptw) => TR_Address(truncate(pa, xlen), ext_ptw), TR_Failure(f, ext_ptw) => TR_Failure(translationException(ac, f), ext_ptw) } } diff --git a/model/riscv_vmem_common.sail b/model/riscv_vmem_common.sail index d17cb02..a6b717b 100644 --- a/model/riscv_vmem_common.sail +++ b/model/riscv_vmem_common.sail @@ -101,14 +101,3 @@ let sv57_params : SV_Params = struct { pte_PPN_j_size_bits = 9 } */ - -// This 'undefined_SV_Params()' function is not used anywhere, but is -// currently (2023-12) needed to work around an issue where Sail tries -// to figure out how it could do -// let x : SV_Params = undefined -// even though the code never does this. This has been fixed in Sail. -// The fix will become available in a new Sail release, at which point -// this function can be deleted (TODO). -// PRIVATE -val undefined_SV_Params : unit -> SV_Params -function undefined_SV_Params() = sv32_params diff --git a/model/riscv_xlen.sail b/model/riscv_xlen.sail new file mode 100644 index 0000000..8b05443 --- /dev/null +++ b/model/riscv_xlen.sail @@ -0,0 +1,17 @@ +/*=======================================================================================*/ +/* This Sail RISC-V architecture model, comprising all files and */ +/* directories except where otherwise noted is subject the BSD */ +/* two-clause license in the LICENSE file. */ +/* */ +/* SPDX-License-Identifier: BSD-2-Clause */ +/*=======================================================================================*/ + +type xlen_bytes : Int = 2 ^ log2_xlen_bytes +type xlen : Int = xlen_bytes * 8 +type xlenbits = bits(xlen) + +// Variable versions of the above types. Variables and types +// are disjoint in Sail so they are allowed to have the same name. +// This saves typing `sizeof()` everywhere. +let xlen_bytes = sizeof(xlen_bytes) +let xlen = sizeof(xlen) diff --git a/model/riscv_xlen32.sail b/model/riscv_xlen32.sail index fb883ac..926f20f 100644 --- a/model/riscv_xlen32.sail +++ b/model/riscv_xlen32.sail @@ -6,8 +6,7 @@ /* SPDX-License-Identifier: BSD-2-Clause */ /*=======================================================================================*/ -/* Define the XLEN value for the architecture. */ - -type xlen : Int = 32 -type xlen_bytes : Int = 4 -type xlenbits = bits(xlen) +// Define the XLEN value for the architecture. +// This is done using the smallest/most logarithmic possible value since Sail's +// type system works well for multiply and 2^ but not divide and log2. +type log2_xlen_bytes : Int = 2 diff --git a/model/riscv_xlen64.sail b/model/riscv_xlen64.sail index 7a90307..9878c7f 100644 --- a/model/riscv_xlen64.sail +++ b/model/riscv_xlen64.sail @@ -6,8 +6,7 @@ /* SPDX-License-Identifier: BSD-2-Clause */ /*=======================================================================================*/ -/* Define the XLEN value for the architecture. */ - -type xlen : Int = 64 -type xlen_bytes : Int = 8 -type xlenbits = bits(xlen) +// Define the XLEN value for the architecture. +// This is done using the smallest/most logarithmic possible value since Sail's +// type system works well for multiply and 2^ but not divide and log2. +type log2_xlen_bytes : Int = 3 diff --git a/model/rvfi_dii.sail b/model/rvfi_dii.sail index d1ad480..6b02155 100644 --- a/model/rvfi_dii.sail +++ b/model/rvfi_dii.sail @@ -202,13 +202,13 @@ register rvfi_mem_data_present : bool val rvfi_zero_exec_packet : unit -> unit function rvfi_zero_exec_packet () = { - rvfi_inst_data = Mk_RVFI_DII_Execution_Packet_InstMetaData(zero_extend(0b0)); - rvfi_pc_data = Mk_RVFI_DII_Execution_Packet_PC(zero_extend(0b0)); - rvfi_int_data = Mk_RVFI_DII_Execution_Packet_Ext_Integer(zero_extend(0x0)); + rvfi_inst_data = Mk_RVFI_DII_Execution_Packet_InstMetaData(zeros()); + rvfi_pc_data = Mk_RVFI_DII_Execution_Packet_PC(zeros()); + rvfi_int_data = Mk_RVFI_DII_Execution_Packet_Ext_Integer(zeros()); // magic = "int-data" -> 0x617461642d746e69 (big-endian) rvfi_int_data = update_magic(rvfi_int_data, 0x617461642d746e69); rvfi_int_data_present = false; - rvfi_mem_data = Mk_RVFI_DII_Execution_Packet_Ext_MemAccess(zero_extend(0x0)); + rvfi_mem_data = Mk_RVFI_DII_Execution_Packet_Ext_MemAccess(zeros()); // magic = "mem-data" -> 0x617461642d6d656d (big-endian) rvfi_mem_data = update_magic(rvfi_mem_data, 0x617461642d6d656d); rvfi_mem_data_present = false; @@ -219,11 +219,11 @@ function rvfi_zero_exec_packet () = { val rvfi_halt_exec_packet : unit -> unit function rvfi_halt_exec_packet () = - rvfi_inst_data->rvfi_halt() = 0x01 + rvfi_inst_data[rvfi_halt] = 0x01 val rvfi_get_v2_support_packet : unit -> bits(704) function rvfi_get_v2_support_packet () = { - let rvfi_exec = Mk_RVFI_DII_Execution_Packet_V1(zero_extend(0b0)); + let rvfi_exec = Mk_RVFI_DII_Execution_Packet_V1(zeros()); // Returning 0x3 (using the unused high bits) in halt instead of 0x1 means // that we support the version 2 wire format. This is required to keep // backwards compatibility with old implementations that do not support @@ -234,7 +234,7 @@ function rvfi_get_v2_support_packet () = { val rvfi_get_exec_packet_v1 : unit -> bits(704) function rvfi_get_exec_packet_v1 () = { - let v1_packet = Mk_RVFI_DII_Execution_Packet_V1(zero_extend(0b0)); + let v1_packet = Mk_RVFI_DII_Execution_Packet_V1(zeros()); // Convert the v2 packet to a v1 packet let v1_packet = update_rvfi_intr(v1_packet, rvfi_inst_data[rvfi_intr]); let v1_packet = update_rvfi_halt(v1_packet, rvfi_inst_data[rvfi_halt]); @@ -246,11 +246,11 @@ function rvfi_get_exec_packet_v1 () = { let v1_packet = update_rvfi_pc_rdata(v1_packet, rvfi_pc_data[rvfi_pc_rdata]); let v1_packet = update_rvfi_rd_addr(v1_packet, rvfi_int_data[rvfi_rd_addr]); - let v1_packet = update_rvfi_rs2_addr(v1_packet, rvfi_int_data.rvfi_rs2_addr()); - let v1_packet = update_rvfi_rs1_addr(v1_packet, rvfi_int_data.rvfi_rs1_addr()); + let v1_packet = update_rvfi_rs2_addr(v1_packet, rvfi_int_data[rvfi_rs2_addr]); + let v1_packet = update_rvfi_rs1_addr(v1_packet, rvfi_int_data[rvfi_rs1_addr]); let v1_packet = update_rvfi_rd_wdata(v1_packet, rvfi_int_data[rvfi_rd_wdata]); - let v1_packet = update_rvfi_rs2_data(v1_packet, rvfi_int_data.rvfi_rs2_rdata()); - let v1_packet = update_rvfi_rs1_data(v1_packet, rvfi_int_data.rvfi_rs1_rdata()); + let v1_packet = update_rvfi_rs2_data(v1_packet, rvfi_int_data[rvfi_rs2_rdata]); + let v1_packet = update_rvfi_rs1_data(v1_packet, rvfi_int_data[rvfi_rs1_rdata]); let v1_packet = update_rvfi_mem_wmask(v1_packet, truncate(rvfi_mem_data[rvfi_mem_wmask], 8)); let v1_packet = update_rvfi_mem_rmask(v1_packet, truncate(rvfi_mem_data[rvfi_mem_rmask], 8)); @@ -273,7 +273,7 @@ val rvfi_get_exec_packet_v2 : unit -> bits(512) function rvfi_get_exec_packet_v2 () = { // TODO: add the other data // TODO: find a way to return a variable-length bitvector - let packet = Mk_RVFI_DII_Execution_PacketV2(zero_extend(0b0)); + let packet = Mk_RVFI_DII_Execution_PacketV2(zeros()); let packet = update_magic(packet, 0x32762d6563617274); // ASCII "trace-v2" (BE) let packet = update_basic_data(packet, rvfi_inst_data.bits); let packet = update_pc_data(packet, rvfi_pc_data.bits); @@ -310,16 +310,16 @@ function print_rvfi_exec () = { print_bits("rvfi_halt : ", rvfi_inst_data[rvfi_halt]); print_bits("rvfi_trap : ", rvfi_inst_data[rvfi_trap]); print_bits("rvfi_rd_addr : ", rvfi_int_data[rvfi_rd_addr]); - print_bits("rvfi_rs2_addr : ", rvfi_int_data.rvfi_rs2_addr()); - print_bits("rvfi_rs1_addr : ", rvfi_int_data.rvfi_rs1_addr()); + print_bits("rvfi_rs2_addr : ", rvfi_int_data[rvfi_rs2_addr]); + print_bits("rvfi_rs1_addr : ", rvfi_int_data[rvfi_rs1_addr]); print_bits("rvfi_mem_wmask: ", rvfi_mem_data[rvfi_mem_wmask]); print_bits("rvfi_mem_rmask: ", rvfi_mem_data[rvfi_mem_rmask]); print_bits("rvfi_mem_wdata: ", rvfi_mem_data[rvfi_mem_wdata]); print_bits("rvfi_mem_rdata: ", rvfi_mem_data[rvfi_mem_rdata]); print_bits("rvfi_mem_addr : ", rvfi_mem_data[rvfi_mem_addr]); print_bits("rvfi_rd_wdata : ", rvfi_int_data[rvfi_rd_wdata]); - print_bits("rvfi_rs2_data : ", rvfi_int_data.rvfi_rs2_rdata()); - print_bits("rvfi_rs1_data : ", rvfi_int_data.rvfi_rs1_rdata()); + print_bits("rvfi_rs2_data : ", rvfi_int_data[rvfi_rs2_rdata]); + print_bits("rvfi_rs1_data : ", rvfi_int_data[rvfi_rs1_rdata]); print_bits("rvfi_insn : ", rvfi_inst_data[rvfi_insn]); print_bits("rvfi_pc_wdata : ", rvfi_pc_data[rvfi_pc_wdata]); print_bits("rvfi_pc_rdata : ", rvfi_pc_data[rvfi_pc_rdata]); diff --git a/ocaml_emulator/_tags b/ocaml_emulator/_tags deleted file mode 100644 index 168de09..0000000 --- a/ocaml_emulator/_tags +++ /dev/null @@ -1,3 +0,0 @@ -<**/*.ml>: bin_annot, annot -<*.m{l,li}>: package(lem), package(linksem), package(zarith) -<riscv_ocaml_sim.native>: package(lem), package(linksem), package(zarith) diff --git a/ocaml_emulator/_tags.bisect b/ocaml_emulator/_tags.bisect deleted file mode 100644 index ca6f27a..0000000 --- a/ocaml_emulator/_tags.bisect +++ /dev/null @@ -1,3 +0,0 @@ -<**/*.ml>: bin_annot, annot -<*.m{l,li}>: package(lem), package(linksem), package(zarith), package(bisect_ppx) -<riscv_ocaml_sim.native>: package(lem), package(linksem), package(zarith), package(bisect_ppx) diff --git a/ocaml_emulator/platform.ml b/ocaml_emulator/platform.ml deleted file mode 100644 index d10029a..0000000 --- a/ocaml_emulator/platform.ml +++ /dev/null @@ -1,185 +0,0 @@ -open Sail_lib;; -module P = Platform_impl;; -module Elf = Elf_loader;; - -(* Platform configuration *) - -let config_enable_rvc = ref true -let config_enable_next = ref false -let config_enable_writable_misa = ref true -let config_enable_dirty_update = ref false -let config_enable_misaligned_access = ref false -let config_mtval_has_illegal_inst_bits = ref false -let config_enable_svinval = ref false -let config_enable_zcb = ref false -let config_enable_writable_fiom = ref true -let config_enable_vext = ref true -let config_enable_bext = ref false -let config_pmp_count = ref Big_int.zero -let config_pmp_grain = ref Big_int.zero - -let set_config_pmp_count x = config_pmp_count := Big_int.of_int x -let set_config_pmp_grain x = config_pmp_grain := Big_int.of_int x - -let platform_arch = ref P.RV64 - -(* logging *) - -let config_print_instr = ref true -let config_print_reg = ref true -let config_print_mem_access = ref true -let config_print_platform = ref true - -let print_instr s = - if !config_print_instr - then print_endline s - else () - -let print_reg s = - if !config_print_reg - then print_endline s - else () - -let print_mem_access s = - if !config_print_mem_access - then print_endline s - else () - -let print_platform s = - if !config_print_platform - then print_endline s - else () - -let get_config_print_instr () = !config_print_instr -let get_config_print_reg () = !config_print_reg -let get_config_print_mem () = !config_print_mem_access -let get_config_print_platform () = !config_print_platform - -(* Mapping to Sail externs *) -let cur_arch_bitwidth () = - match !platform_arch with - | P.RV64 -> Big_int.of_int 64 - | P.RV32 -> Big_int.of_int 32 - -let arch_bits_of_int i = - get_slice_int (cur_arch_bitwidth (), Big_int.of_int i, Big_int.zero) - -let arch_bits_of_int64 i = - get_slice_int (cur_arch_bitwidth (), Big_int.of_int64 i, Big_int.zero) - -let rom_size_ref = ref 0 -let make_rom arch start_pc = - let reset_vec = - List.concat (List.map P.uint32_to_bytes (P.reset_vec_int arch start_pc)) in - let dtb = P.make_dtb (P.make_dts arch) in - let rom = reset_vec @ dtb in - ( rom_size_ref := List.length rom; - (* - List.iteri (fun i c -> - print_mem_access "rom[0x%Lx] <- %x\n" - (Int64.add P.rom_base (Int64.of_int i)) - c - ) rom; - *) - rom ) - -let enable_writable_misa () = !config_enable_writable_misa -let enable_rvc () = !config_enable_rvc -let enable_next () = !config_enable_next -let enable_fdext () = false -let enable_vext () = !config_enable_vext -let enable_bext () = !config_enable_bext -let enable_dirty_update () = !config_enable_dirty_update -let enable_misaligned_access () = !config_enable_misaligned_access -let mtval_has_illegal_inst_bits () = !config_mtval_has_illegal_inst_bits -let enable_svinval () = !config_enable_svinval -let enable_zcb () = !config_enable_zcb -let enable_zfinx () = false -let enable_writable_fiom () = !config_enable_writable_fiom -let pmp_count () = !config_pmp_count -let pmp_grain () = !config_pmp_grain - -let rom_base () = arch_bits_of_int64 P.rom_base -let rom_size () = arch_bits_of_int !rom_size_ref - -let dram_base () = arch_bits_of_int64 P.dram_base -let dram_size () = arch_bits_of_int64 !P.dram_size_ref - -let clint_base () = arch_bits_of_int64 P.clint_base -let clint_size () = arch_bits_of_int64 P.clint_size - -let insns_per_tick () = Big_int.of_int P.insns_per_tick - -let htif_tohost () = - arch_bits_of_int64 (Big_int.to_int64 (Elf.elf_tohost ())) - -(* Entropy Source - get random bits *) - -(* This function can be changed to support deterministic sequences of - pseudo-random bytes. This is useful for testing. *) -let get_16_random_bits () = arch_bits_of_int (Random.int 0xFFFF) - -(* load reservation *) - -let speculate_conditional () = true - -let reservation = ref "none" (* shouldn't match any valid address *) - -let load_reservation addr = - print_platform (Printf.sprintf "reservation <- %s\n" (string_of_bits addr)); - reservation := string_of_bits addr - -let match_reservation addr = - print_platform (Printf.sprintf "reservation: %s, key=%s\n" (!reservation) (string_of_bits addr)); - string_of_bits addr = !reservation - -let cancel_reservation () = - print_platform (Printf.sprintf "reservation <- none\n"); - reservation := "none" - -let read_mem (rk, addrsize, addr, len) = - Sail_lib.fast_read_ram (len, addr) - -let write_mem_ea _ = () - -let write_mem (wk, addrsize, addr, len, value) = - Sail_lib.write_ram' (len, Sail_lib.uint addr, value); true - -let excl_res _ = true - -let barrier _ = () - -(* terminal I/O *) - -let term_write char_bits = - let big_char = Big_int.bitwise_and (uint char_bits) (Big_int.of_int 255) in - P.term_write (char_of_int (Big_int.to_int big_char)) - -let term_read () = - let c = P.term_read () in - arch_bits_of_int (int_of_char c) - -(* physical memory *) - -let get_mem_bytes addr len = - read_mem_bytes addr len - -(* returns starting value for PC, i.e. start of reset vector *) -let init arch elf_file = - platform_arch := arch; - Elf.load_elf elf_file; - - print_platform (Printf.sprintf "\nRegistered htif_tohost at 0x%Lx.\n" (Big_int.to_int64 (Elf.elf_tohost ()))); - print_platform (Printf.sprintf "Registered clint at 0x%Lx (size 0x%Lx).\n%!" P.clint_base P.clint_size); - - let start_pc = Elf.Big_int.to_int64 (Elf.elf_entry ()) in - let rom = make_rom arch start_pc in - let rom_base = Big_int.of_int64 P.rom_base in - let rec write_rom ofs = function - | [] -> () - | h :: tl -> let addr = Big_int.add rom_base (Big_int.of_int ofs) in - (wram addr h); - write_rom (ofs + 1) tl - in ( write_rom 0 rom; - get_slice_int (cur_arch_bitwidth (), rom_base, Big_int.zero) - ) diff --git a/ocaml_emulator/platform_impl.ml b/ocaml_emulator/platform_impl.ml deleted file mode 100644 index 39de437..0000000 --- a/ocaml_emulator/platform_impl.ml +++ /dev/null @@ -1,203 +0,0 @@ -(* architecture *) - -type arch = - | RV32 - | RV64 - -let str_of_arch = function - | RV32 -> "RV32" - | RV64 -> "RV64" - -(* int->byte converters in little-endian order *) - -let uint32_to_bytes u = let open Int32 in - List.map to_int - [ logand u 0xffl; - logand (shift_right u 8) 0xffl; - logand (shift_right u 16) 0xffl; - logand (shift_right u 24) 0xffl; - ] - -let uint64_to_bytes u = let open Int64 in - List.map to_int - [ logand u 0xffL; - logand (shift_right u 8) 0xffL; - logand (shift_right u 16) 0xffL; - logand (shift_right u 24) 0xffL; - logand (shift_right u 32) 0xffL; - logand (shift_right u 40) 0xffL; - logand (shift_right u 48) 0xffL; - logand (shift_right u 56) 0xffL; - ] - -(* reset vector for the rom *) - -let reset_vec_size = 8l;; - -let reset_vec_int arch start_pc = [ - 0x297l; (* auipc t0, 0x0 *) - (let open Int32 in - add 0x28593l (shift_left (mul reset_vec_size 4l) 20)); (* addi a1, t0, ofs(dtb) *) - 0xf1402573l; (* csrr a0, mhartid *) - (match arch with - | RV32 -> 0x0182a283l (* lw t0, 24(t0) *) - | RV64 -> 0x0182b283l); (* ld t0, 24(t0) *) - 0x28067l; (* jr t0 *) - 0x0l; - (let open Int64 in to_int32 (logand start_pc 0xffffffffL)); - (let open Int64 in to_int32 (shift_right_logical start_pc 32)); -] - -(* address map *) - -let dram_base = 0x80000000L;; (* Spike::DRAM_BASE *) -let clint_base = 0x02000000L;; (* Spike::CLINT_BASE *) -let clint_size = 0x000c0000L;; (* Spike::CLINT_SIZE *) -let rom_base = 0x00001000L;; (* Spike::DEFAULT_RSTVEC *) - -let dram_size_ref = ref (Int64.(shift_left 64L 20)) - -type mem_region = { - addr : Int64.t; - size : Int64.t -} - -(* dts from spike *) -let spike_dts isa_spec mmu_spec cpu_hz insns_per_rtc_tick mems = - "/dts-v1/;\n" - ^ "\n" - ^ "/ {\n" - ^ " #address-cells = <2>;\n" - ^ " #size-cells = <2>;\n" - ^ " compatible = \"ucbbar,spike-bare-dev\";\n" - ^ " model = \"ucbbar,spike-bare\";\n" - ^ " cpus {\n" - ^ " #address-cells = <1>;\n" - ^ " #size-cells = <0>;\n" - ^ " timebase-frequency = <" ^ string_of_int (cpu_hz/insns_per_rtc_tick) ^ ">;\n" - ^ " CPU0: cpu@0 {\n" - ^ " device_type = \"cpu\";\n" - ^ " reg = <0>;\n" - ^ " status = \"okay\";\n" - ^ " compatible = \"riscv\";\n" - ^ " riscv,isa = \"" ^ isa_spec ^ "\";\n" - ^ " mmu-type = \"riscv," ^ mmu_spec ^ "\";\n" - ^ " clock-frequency = <" ^ string_of_int cpu_hz ^ ">;\n" - ^ " CPU0_intc: interrupt-controller {\n" - ^ " #interrupt-cells = <1>;\n" - ^ " interrupt-controller;\n" - ^ " compatible = \"riscv,cpu-intc\";\n" - ^ " };\n" - ^ " };\n" - ^ " };\n" - ^ (List.fold_left (^) "" - (List.map (fun m -> - " memory@" ^ Printf.sprintf "%Lx" m.addr ^ " {\n" - ^ " device_type = \"memory\";\n" - ^ " reg = <0x" ^ Printf.sprintf "%Lx" Int64.(shift_right_logical m.addr 32) ^ " 0x" ^ Printf.sprintf "%Lx" Int64.(logand m.addr 0xffffffffL) - ^ " 0x" ^ Printf.sprintf "%Lx" Int64.(shift_right_logical m.size 32) ^ " 0x" ^ Printf.sprintf "%Lx" Int64.(logand m.size 0xffffffffL) ^ ">;\n" - ^ " };\n") mems)) - ^ " soc {\n" - ^ " #address-cells = <2>;\n" - ^ " #size-cells = <2>;\n" - ^ " compatible = \"ucbbar,spike-bare-soc\", \"simple-bus\";\n" - ^ " ranges;\n" - ^ " clint@" ^ Printf.sprintf "%Lx" clint_base ^ " {\n" - ^ " compatible = \"riscv,clint0\";\n" - ^ " interrupts-extended = <&CPU0_intc 3 &CPU0_intc 7 >;\n" - ^ " reg = <0x" ^ Printf.sprintf "%Lx" Int64.(shift_right_logical clint_base 32) ^ " 0x" ^ Printf.sprintf "%Lx" Int64.(logand clint_base 0xffffffffL) - ^ " 0x" ^ Printf.sprintf "%Lx" Int64.(shift_right_logical clint_size 32) ^ " 0x" ^ Printf.sprintf "%Lx" Int64.(logand clint_size 0xffffffffL) ^ ">;\n" - ^ " };\n" - ^ " };\n" - ^ " htif {\n" - ^ " compatible = \"ucb,htif0\";\n" - ^ " };\n" - ^ "};\n" - -let cpu_hz = 1000000000;; -let insns_per_tick = 100;; - -let make_mems () = [{ addr = dram_base; - size = !dram_size_ref }];; - -let make_dts arch = - let isa, mmu = match arch with - | RV64 -> "rv64imac", "sv39" - | RV32 -> "rv32imac", "sv32" in - spike_dts isa mmu cpu_hz insns_per_tick (make_mems ());; - -let bytes_to_string bytes = - String.init (List.length bytes) (fun i -> Char.chr (List.nth bytes i)) - -let dtc_path = ref "/usr/bin/dtc" - -let set_dtc path = - try let st = Unix.stat path in - if st.Unix.st_kind = Unix.S_REG && st.Unix.st_perm != 0 - then dtc_path := path - else ( Printf.eprintf "%s doesn't seem like a valid executable.\n%!" path; - exit 1) - with Unix.Unix_error (e, _, _) -> - ( Printf.eprintf "Error accessing %s: %s\n%!" path (Unix.error_message e); - exit 1) - -let set_dram_size mb = - dram_size_ref := Int64.(shift_left (Int64.of_int mb) 20) - -let make_dtb dts = (* Call the dtc compiler, assumed to be at /usr/bin/dtc *) - try - let cmd = Printf.sprintf "%s -I dts" !dtc_path in - let (cfrom, cto, cerr) = - Unix.open_process_full cmd [||] - in ( - output_string cto dts; - (* print_endline " sent dts to dtc ..."; *) - close_out cto; - (* simple and stupid for now *) - let rec accum_bytes cin acc = - match ( - try Some (input_byte cin) - with End_of_file -> None - ) with - | Some b -> accum_bytes cin (b :: acc) - | None -> List.rev acc - in - (* let _ = print_endline " accumulating dtb ..." in *) - let dtb = accum_bytes cfrom [] in - (* let _ = print_endline " accumulating emsg ..." in *) - let emsg = bytes_to_string (accum_bytes cerr []) in - match Unix.close_process_full (cfrom, cto, cerr) with - | Unix.WEXITED 0 -> dtb - | _ -> (Printf.printf "%s\n%!" ("Error executing dtc: " ^ emsg); - exit 1) - ) - with Unix.Unix_error (e, fn, _) -> - (Printf.printf "%s\n" ("Error executing dtc: " ^ fn ^ ": " ^ Unix.error_message e); - exit 1) - -(* Terminal I/O *) - -let term_write char = - ignore (Unix.write_substring Unix.stderr (String.make 1 char) 0 1) - -let rec term_read () = - let buf = Bytes.make 1 '\000' in - let nbytes = Unix.read Unix.stdin buf 0 1 in - (* todo: handle nbytes == 0 *) - Bytes.get buf 0 - -(* Platform diagnostics *) - -let show_bytes s = - output_string stdout s - -let dump_dts arch = show_bytes (make_dts arch) -let dump_dtb arch = show_bytes (bytes_to_string (make_dtb (make_dts arch))) - -(* -let save_string_to_file s fname = - let out = open_out fname in - output_string out s; - close_out out;; - - *) diff --git a/ocaml_emulator/riscv_ocaml_sim.ml b/ocaml_emulator/riscv_ocaml_sim.ml deleted file mode 100644 index 344d1d2..0000000 --- a/ocaml_emulator/riscv_ocaml_sim.ml +++ /dev/null @@ -1,199 +0,0 @@ -open Sail_lib -open Riscv -module PI = Platform_impl -module P = Platform -module Elf = Elf_loader - -(* OCaml driver for generated RISC-V model. *) - -let opt_file_arguments = ref ([] : string list) - -let opt_dump_dts = ref false -let opt_dump_dtb = ref false -let opt_signature_file = ref (None : string option) -let signature_granularity_ref = ref 4 -let opt_isa = ref (None : string option) - -let report_arch () = - Printf.printf "RV%d\n" (Big_int.to_int Riscv.zxlen_val); - exit 0 - -let set_signature_file s = - opt_signature_file := Some s; - (* turn off logging *) - P.config_print_instr := false; - P.config_print_reg := false; - P.config_print_mem_access := false; - P.config_print_platform := false - -let set_signature_granularity sg = - signature_granularity_ref := sg - -let options = Arg.align ([("-dump-dts", - Arg.Set opt_dump_dts, - " dump the platform device-tree source to stdout"); - ("-dump-dtb", - Arg.Set opt_dump_dtb, - " dump the *binary* platform device-tree blob to stdout"); - ("-enable-dirty-update", - Arg.Set P.config_enable_dirty_update, - " enable dirty-bit update during page-table walks"); - ("-enable-misaligned-access", - Arg.Set P.config_enable_misaligned_access, - " enable misaligned accesses without M-mode traps"); - ("-pmp-count", - Arg.Int P.set_config_pmp_count, - " number of supported PMPs (0, 16, 64)"); - ("-pmp-grain", - Arg.Int P.set_config_pmp_grain, - " exponent of granularity of PMP addresses (G in the spec)"); - ("-enable-next", - Arg.Set P.config_enable_next, - " enable N extension"); - ("-mtval-has-illegal-inst-bits", - Arg.Set P.config_mtval_has_illegal_inst_bits, - " mtval stores instruction bits on an illegal instruction exception"); - ("-enable-svinval", - Arg.Set P.config_enable_svinval, - " enable Svinval extension"); - ("-enable-zcb", - Arg.Set P.config_enable_zcb, - " enable Zcb (simple code size) extension"); - ("-enable-writable-fiom", - Arg.Set P.config_enable_writable_fiom, - " enable FIOM (Fence of I/O implies Memory) bit in menvcfg"); - ("-disable-rvc", - Arg.Clear P.config_enable_rvc, - " disable the RVC extension on boot"); - ("-disable-vext", - Arg.Clear P.config_enable_vext, - " disable the RVV extension on boot"); - ("-enable-bext", - Arg.Clear P.config_enable_bext, - " enable the B extension on boot"); - ("-disable-writable-misa-c", - Arg.Clear P.config_enable_writable_misa, - " leave misa hardwired to its initial value"); - ("-ram-size", - Arg.Int PI.set_dram_size, - " size of physical ram memory to use (in MB)"); - ("-report-arch", - Arg.Unit report_arch, - " report model architecture (RV32 or RV64)"); - ("-test-signature", - Arg.String set_signature_file, - " file for signature output (requires ELF signature symbols)"); - ("-signature-granularity", - Arg.Int set_signature_granularity, - " test signature granularity (in bytes)"); - ("-isa", - Arg.String (fun s -> opt_isa := Some s), - " requested isa"); - ("-with-dtc", - Arg.String PI.set_dtc, - " full path to dtc to use") - ]) - -let usage_msg = "RISC-V platform options:" - -(* ELF architecture checks *) - -let get_arch () = - match Big_int.to_int Riscv.zxlen_val with - | 64 -> PI.RV64 - | 32 -> PI.RV32 - | n -> failwith (Printf.sprintf "Unknown model architecture RV%d" n) - -let str_of_elf = function - | Elf.ELF_Class_64 -> "ELF64" - | Elf.ELF_Class_32 -> "ELF32" - -let elf_arg = - Arg.parse options (fun s -> opt_file_arguments := !opt_file_arguments @ [s]) - usage_msg; - if !opt_dump_dts then (PI.dump_dts (get_arch ()); exit 0); - if !opt_dump_dtb then (PI.dump_dtb (get_arch ()); exit 0); - ( match !opt_file_arguments with - | f :: _ -> prerr_endline ("Sail/RISC-V: running ELF file " ^ f); f - | _ -> (prerr_endline "Please provide an ELF file."; exit 0) - ) - -let check_elf () = - match (get_arch (), Elf.elf_class ()) with - | (PI.RV64, Elf.ELF_Class_64) -> - P.print_platform "RV64 model loaded ELF64.\n" - | (PI.RV32, Elf.ELF_Class_32) -> - P.print_platform "RV32 model loaded ELF32.\n" - | (a, e) -> - (let msg = Printf.sprintf "\n%s model cannot execute %s.\n" (PI.str_of_arch a) (str_of_elf e) in - Printf.eprintf "%s" msg; - exit 1) - -(* post execution handlers *) - -let write_bytes fl bytes = - let i = ref 0 in - while !i < Bytes.length bytes do - for j = !signature_granularity_ref - 1 downto 0 do - let s = Printf.sprintf "%02x" - (int_of_char (Bytes.get bytes (!i + j))) in - output_string fl s; - done; - output_string fl "\n"; - i := !i + !signature_granularity_ref; - done - -let write_signature f sig_start sig_end = - let b = Big_int.to_int sig_start in - let len = Big_int.to_int sig_end - b in - let sig_bytes = P.get_mem_bytes sig_start len in - let sig_file = open_out f in - write_bytes sig_file sig_bytes; - close_out sig_file - -let dump_signature () = - match !opt_signature_file with - | None -> () - | Some f -> - match (Elf.elf_symbol "begin_signature", - Elf.elf_symbol "end_signature") with - | Some b, Some e -> write_signature f b e - | None, _ -> Printf.eprintf "no begin_signature symbol in ELF" - | _, None -> Printf.eprintf "no end_signature symbol in ELF" - -let show_times init_s init_e run_e insts = - let init_time = init_e.Unix.tms_utime -. init_s.Unix.tms_utime in - let exec_time = run_e.Unix.tms_utime -. init_e.Unix.tms_utime in - Printf.eprintf "\nInitialization: %g secs\n" init_time; - Printf.eprintf "Execution: %g secs\n" exec_time; - Printf.eprintf "Instructions retired: %Ld\n" insts; - Printf.eprintf "Perf: %g ips\n" ((Int64.to_float insts) /. exec_time) - -(* model execution *) - -let run pc = - sail_call - (fun r -> - try ( zinit_model (); - zPC := pc; - zloop () - ) - with - | ZError_not_implemented (zs) -> - print_string ("Error: Not implemented: ", zs) - | ZError_internal_error (_) -> - prerr_endline "Error: internal error" - ) - -let () = - Random.self_init (); - - let init_start = Unix.times () in - let pc = Platform.init (get_arch ()) elf_arg in - let _ = check_elf () in - let init_end = Unix.times () in - let _ = run pc in - let run_end = Unix.times () in - let insts = Big_int.to_int64 (uint (!Riscv.zminstret)) in - dump_signature (); - show_times init_start init_end run_end insts diff --git a/ocaml_emulator/softfloat.ml b/ocaml_emulator/softfloat.ml deleted file mode 100644 index 2b98751..0000000 --- a/ocaml_emulator/softfloat.ml +++ /dev/null @@ -1,198 +0,0 @@ - -let f16_add rm v1 v2 = - () - -let f16_sub rm v1 v2 = - () - -let f16_mul rm v1 v2 = - () - -let f16_div rm v1 v2 = - () - -let f32_add rm v1 v2 = - () - -let f32_sub rm v1 v2 = - () - -let f32_mul rm v1 v2 = - () - -let f32_div rm v1 v2 = - () - -let f64_add rm v1 v2 = - () - -let f64_sub rm v1 v2 = - () - -let f64_mul rm v1 v2 = - () - -let f64_div rm v1 v2 = - () - -let f16_muladd rm v1 v2 v3 = - () - -let f32_muladd rm v1 v2 v3 = - () - -let f64_muladd rm v1 v2 v3 = - () - -let f16_sqrt rm v = - () - -let f32_sqrt rm v = - () - -let f64_sqrt rm v = - () - -let f16_to_i32 rm v = - () - -let f16_to_ui32 rm v = - () - -let i32_to_f16 rm v = - () - -let ui32_to_f16 rm v = - () - -let f16_to_i64 rm v = - () - -let f16_to_ui64 rm v = - () - -let i64_to_f16 rm v = - () - -let ui64_to_f16 rm v = - () - -let f32_to_i32 rm v = - () - -let f32_to_ui32 rm v = - () - -let i32_to_f32 rm v = - () - -let ui32_to_f32 rm v = - () - -let f32_to_i64 rm v = - () - -let f32_to_ui64 rm v = - () - -let i64_to_f32 rm v = - () - -let ui64_to_f32 rm v = - () - -let f64_to_i32 rm v = - () - -let f64_to_ui32 rm v = - () - -let i32_to_f64 rm v = - () - -let ui32_to_f64 rm v = - () - -let f64_to_i64 rm v = - () - -let f64_to_ui64 rm v = - () - -let i64_to_f64 rm v = - () - -let ui64_to_f64 rm v = - () - -let f16_to_f32 rm v = - () - -let f16_to_f64 rm v = - () - -let f32_to_f64 rm v = - () - -let f32_to_f16 rm v = - () - -let f64_to_f16 rm v = - () - -let f64_to_f32 rm v = - () - -let f16_lt v1 v2 = - () - -let f16_lt_quiet v1 v2 = - () - -let f16_le v1 v2 = - () - -let f16_le_quiet v1 v2 = - () - -let f16_eq v1 v2 = - () - -let f32_lt v1 v2 = - () - -let f32_lt_quiet v1 v2 = - () - -let f32_le v1 v2 = - () - -let f32_le_quiet v1 v2 = - () - -let f32_eq v1 v2 = - () - -let f64_lt v1 v2 = - () - -let f64_lt_quiet v1 v2 = - () - -let f64_le v1 v2 = - () - -let f64_le_quiet v1 v2 = - () - -let f64_eq v1 v2 = - () - -let f16_round_to_int exact rm v = - () - -let f32_round_to_int exact rm v = - () - -let f64_round_to_int exact rm v = - () diff --git a/ocaml_emulator/tracecmp.ml b/ocaml_emulator/tracecmp.ml deleted file mode 100644 index 5ce3970..0000000 --- a/ocaml_emulator/tracecmp.ml +++ /dev/null @@ -1,358 +0,0 @@ -(* Simple trace comparison checker *) - -type arch = - | RV32 - | RV64 - -type csr_read = { - csrr : string; - rdval : int64 -} - -type csr_write = { - csrw : string; - wrval : int64 -} - -type reg_write = { - reg : int; - rval : int64 -} - -type mem_op = { - vaddr : int64; - paddr : int64; - mval : int64 -} - -type inst = { - count : int; - priv : char; - pc : int64; - inst: int32 -} - -type tick = { - time : int64 -} - -type htif = { - tohost : int64 -} - -type ld_res = - | Res_make of int64 - | Res_match of int64 * int64 - | Res_cancel - -type line = - | L_none - | L_inst of inst - | L_reg_write of reg_write - | L_csr_read of csr_read - | L_csr_write of csr_write - | L_mem_read of mem_op - | L_mem_write of mem_op - | L_tick of tick - | L_htif of htif - | L_ld_res of ld_res - -(* architectural support *) -let sail_arch = ref RV64 - -let arch_val v = - match !sail_arch with - | RV64 -> v - | RV32 -> Int64.logand v 0xFFFFFFFFL (* only lowest 32-bits *) - -let inst_count = ref 0 - -(* csr reads - CSR mscratch -> 0x0000000000000000 - *) - -let parse_csr_read l = - try Scanf.sscanf l " CSR %s -> 0x%Lx" - (fun csrr rdval -> L_csr_read { csrr; rdval = arch_val rdval }) - with - | Scanf.Scan_failure _ -> L_none - | End_of_file -> L_none - -let sprint_csr_read r = - Printf.sprintf "CSR %s -> 0x%Lx" r.csrr r.rdval - -(* csr writes - CSR mstatus <- 0x0000000a00020800 (input: 0x0000000a00020800) - *) - -let parse_csr_write l = - try Scanf.sscanf l " CSR %s <- 0x%Lx " - (fun csrw wrval -> L_csr_write { csrw; wrval = arch_val wrval }) - with - | Scanf.Scan_failure _ -> L_none - | End_of_file -> L_none - -let sprint_csr_write r = - Printf.sprintf "CSR %s <- 0x%Lx " r.csrw r.wrval - -(* mem reads - mem[V:0x0000000080001000, P:0x0000000080001000] -> 0x0000000000000000 - *) - -(* exclusion list, to avoid comparing reads to mmio htif port by spike *) -let mem_addr_excludes = [ 0x80001000L ] -let parse_mem_read l = - try Scanf.sscanf l " mem[V:0x%Lx, P:0x%Lx] -> 0x%Lx" - (fun va pa v -> - if List.mem va mem_addr_excludes || List.mem pa mem_addr_excludes - then L_none - else L_mem_read { vaddr = arch_val va; paddr = arch_val pa; mval = arch_val v }) - with - | Scanf.Scan_failure _ -> L_none - | End_of_file -> L_none - -let sprint_mem_read r = - Printf.sprintf "mem[V:0x%Lx, P:0x%Lx] -> 0x%Lx" r.vaddr r.paddr r.mval - -(* mem writes - mem[V:0x0000000080001000, P:0x0000000080001000] <- 0x0000000000000000 - *) - -let parse_mem_write l = - try Scanf.sscanf l " mem[V:0x%Lx, P:0x%Lx] <- 0x%Lx" - (fun va pa v -> - L_mem_write { vaddr = arch_val va; paddr = arch_val pa; mval = arch_val v }) - with - | Scanf.Scan_failure _ -> L_none - | End_of_file -> L_none - -let sprint_mem_write r = - Printf.sprintf "mem[V:0x%Lx, P:0x%Lx] -> 0x%Lx" r.vaddr r.paddr r.mval - -(* reg writes - x16 <- 0x0000000000000000 - *) - -let parse_reg_write l = - try Scanf.sscanf l " x%u <- 0x%Lx" - (fun reg rval -> L_reg_write { reg; rval = arch_val rval }) - with - | Scanf.Scan_failure _ -> L_none - | End_of_file -> L_none - -let sprint_reg_write r = - Printf.sprintf "x%u <- 0x%Lx" r.reg r.rval - -(* instructions *) - -let sprint_inst r = - Printf.sprintf "[%u] [%c]: 0x%Lx (0x%lx)" r.count r.priv r.pc r.inst - -(* sail instruction line: - [13000] [M]: 0x0000000080000E4A (0x0107971B) slli a4, a5, 0b10000 - *) - -let parse_sail_inst l = - try Scanf.sscanf l " [%u] [%c]: 0x%Lx (0x%lx) %s" - (fun count priv pc inst _ -> - inst_count := count; - L_inst { count; priv; pc; inst }) - with - | Scanf.Scan_failure _ -> L_none - | End_of_file -> L_none - -(* spike instruction line: - [2] core 0 [M]: 0x0000000000001008 (0xf1402573) csrr a0, mhartid - *) - -let parse_spike_inst l = - try Scanf.sscanf l " [%u] core 0 [%c]: 0x%Lx (0x%lx) %s" - (fun count priv pc inst _ -> - inst_count := count; - L_inst { count; priv; pc = arch_val pc; inst }) - with - | Scanf.Scan_failure _ -> L_none - | End_of_file -> L_none - -(* clock tick - clint::tick mtime <- 0x1 - *) - -let parse_tick l = - try Scanf.sscanf l " clint::tick mtime <- 0x%Lx" - (fun time -> L_tick { time }) - with - | Scanf.Scan_failure _ -> L_none - | End_of_file -> L_none - -let sprint_tick t = - Printf.sprintf "clint::tick mtime <- 0x%Lx" t.time - -(* htif tick - htif::tick 0x1 - *) - -let parse_htif l = - try Scanf.sscanf l " htif::tick 0x%Lx" - (fun tohost -> L_htif { tohost }) - with - | Scanf.Scan_failure _ -> L_none - | End_of_file -> L_none - -let sprint_htif t = - Printf.sprintf "htif::tick 0x%Lx" t.tohost - -(* Load reservations: - make: reservation <- 0x80002008 - match: reservation: 0xffffffffffffffff, key=0x80002008 - cancel: reservation <- none - - *) -let parse_ldres_match l = - try Scanf.sscanf - l " reservation: 0x%Lx, key=0x%Lx" - (fun res key -> L_ld_res (Res_match (res, key))) - with - | Scanf.Scan_failure _ -> L_none - | End_of_file -> L_none - -let parse_ldres_match_sail l = - try Scanf.sscanf - l " reservation: none, key=0x%Lx" - (fun key -> L_ld_res (Res_match (Int64.minus_one, key))) - with - | Scanf.Scan_failure _ -> L_none - | End_of_file -> L_none - -let parse_ldres_change l = - try if l = "reservation <- none" - then L_ld_res Res_cancel - else Scanf.sscanf - l " reservation <- 0x%Lx" - (fun res -> L_ld_res (Res_make res)) - with - | Scanf.Scan_failure _ -> L_none - | End_of_file -> L_none - -let sprint_ldres = function - | Res_make res -> Printf.sprintf "reservation <- 0x%Lx" res - | Res_match (res, key) -> Printf.sprintf "reservation: 0x%Lx, key=0x%Lx" res key - | Res_cancel -> Printf.sprintf "reservation <- none" - -(* scanners *) - -let popt p l = function - | L_none -> p l - | res -> res - -let parse_line l = - parse_csr_read l |> popt parse_csr_write l - |> popt parse_reg_write l |> popt parse_tick l |> popt parse_htif l - |> popt parse_ldres_change l |> popt parse_ldres_match l - -let parse_sail_line l = - parse_line l |> popt parse_sail_inst l |> popt parse_ldres_match_sail l - -let parse_spike_line l = - parse_line l |> popt parse_spike_inst l - -(* printer *) -let sprint_line = function - | L_none -> "<not-parsed>" - | L_inst i -> sprint_inst i - | L_reg_write r -> Printf.sprintf "<%d> %s" !inst_count (sprint_reg_write r) - | L_csr_read r -> Printf.sprintf "<%d> %s" !inst_count (sprint_csr_read r) - | L_csr_write r -> Printf.sprintf "<%d> %s" !inst_count (sprint_csr_write r) - | L_mem_read m -> Printf.sprintf "<%d> %s" !inst_count (sprint_mem_read m) - | L_mem_write m -> Printf.sprintf "<%d> %s" !inst_count (sprint_mem_write m) - | L_tick t -> Printf.sprintf "<%d> %s" !inst_count (sprint_tick t) - | L_htif t -> Printf.sprintf "<%d> %s" !inst_count (sprint_htif t) - | L_ld_res r -> Printf.sprintf "<%d> %s" !inst_count (sprint_ldres r) - -(* file processing *) - -let rec get_line ch parse = - let line = try Some (input_line ch) - with End_of_file -> None in - match line with - | Some l -> (match parse l with - | L_none -> get_line ch parse - | r -> r - ) - | None -> L_none - -let rec print_lines ch parse = - match (get_line ch parse) with - | L_none -> () - | l -> (print_endline (sprint_line l); - print_lines ch parse) - - -let lines_matched k l = - match k, l with - (* Special case for CSR writes to sie/sip/sstatus, since spike - * does a recursive call which messes the trace log. For these - * registers, we just match the final written value, and need to - * unfortunately ignore the input value. - *) - | L_csr_write kw, L_csr_write lw -> - if ( (kw.csrw = "mie" && lw.csrw = "sie") - || (kw.csrw = "mip" && lw.csrw = "sip") - || (kw.csrw = "mstatus" && lw.csrw = "sstatus")) - then kw.wrval = lw.wrval - else kw = lw - | _, _ -> k = l - -let rec compare_traces k l cnt = - let kro = get_line k parse_spike_line in - let lro = get_line l parse_sail_line in - match kro, lro with - | L_none, L_none -> - print_endline (Printf.sprintf "Matched %d instructions" cnt) - | L_none, lr -> - print_endline "Spike: not reached"; - print_endline ("Sail: " ^ sprint_line lr); - exit 1 - | kr, L_none -> - print_endline ("Spike: " ^ sprint_line kr); - print_endline "Sail: not reached"; - exit 1 - | kr, lr -> - if lines_matched kr lr - then compare_traces k l (cnt + 1) - else (print_endline ("Spike: " ^ sprint_line kr); - print_endline ("Sail: " ^ sprint_line lr); - exit 1) - -let spike_log = ref (None : string option) -let sail_log = ref (None : string option) -let uncompress = ref false - -let in_file f = - if !uncompress - then Unix.open_process_in ("gunzip -c " ^ f) - else open_in f - -let options = - Arg.align ([( "-z", - Arg.Set uncompress, - " uncompress trace files"); - ( "-rv32", - Arg.Unit (fun f -> sail_arch := RV32), - " sail architecture"); - ( "-k", - Arg.String (fun f -> spike_log := Some f), - " spike trace log"); - ( "-l", - Arg.String (fun f -> sail_log := Some f), - " sail trace log")]) -let usage = "usage: tracecmp [options]\n" - -let _ = - Arg.parse options (fun s -> print_endline usage; exit 0) - usage; - match !spike_log, !sail_log with - | None, None -> (print_endline usage; exit 0) - | Some l, None -> print_lines (in_file l) parse_spike_line - | None, Some l -> print_lines (in_file l) parse_sail_line - | Some k, Some l -> compare_traces (in_file k) (in_file l) 0 @@ -1,32 +0,0 @@ -opam-version: "2.0" -name: "sail-riscv" -version: "0.5" -maintainer: "Sail Devs <cl-sail-dev@lists.cam.ac.uk>" -authors: [ - "Alasdair Armstrong" - "Thomas Bauereiss" - "Brian Campbell" - "Shaked Flur" - "Jonathan French" - "Prashanth Mundkur" - "Robert Norton" - "Christopher Pulte" - "Peter Sewell" -] -homepage: "https://github.com/rems-project/sail-riscv/" -bug-reports: "https://github.com/rems-project/sail-riscv/issues" -license: "BSD3" -dev-repo: "git+https://github.com/rems-project/sail-riscv.git" -build: [make "LEM_DIR=%{lem:share}%" "SAIL_DIR=%{sail:share}%" "SAIL=sail" "opam-build"] -depends: [ - "ocaml" {>= "4.06.1"} - "ocamlfind" - "ocamlbuild" - "lem" - "sail" {>= "0.9"} - "linksem" {>= "0.3"} - "conf-gmp" - "conf-zlib" -] -synopsis: - "This package installs a RISC-V emulator (32 and 64 bits) built form the Sail model at https://github.com/rems-project/sail-riscv" diff --git a/os-boot/README.md b/os-boot/README.md index 087abac..921dd65 100644 --- a/os-boot/README.md +++ b/os-boot/README.md @@ -35,15 +35,6 @@ performance and benchmarking a model without any execution tracing is available on the optimize branch (`git checkout optimize`) of this repository. This currently requires the latest Sail built from source. -Booting Linux with the OCaml backend ------------------------------------- - -The OCaml model only needs the ELF-version of the BBL, since it can generate its -own DTB. -``` -$ ./ocaml_emulator/riscv_ocaml_sim_<arch> bbl > execution-trace.log 2> console.log -``` - Caveats for OS boot ------------------- diff --git a/test/run_tests.sh b/test/run_tests.sh index 8c0f03f..d8016fa 100755 --- a/test/run_tests.sh +++ b/test/run_tests.sh @@ -55,31 +55,6 @@ cd $RISCVDIR make clean printf "Building 32-bit RISCV specification...\n" -if ARCH=RV32 make ocaml_emulator/riscv_ocaml_sim_RV32 ; -then - green "Building 32-bit RISCV OCaml emulator" "ok" -else - red "Building 32-bit RISCV OCaml emulator" "fail" -fi -for test in $DIR/riscv-tests/rv32*.elf; do - # skip F/D tests on OCaml for now - pat='rv32ud-.+elf' - if [[ $(basename $test) =~ $pat ]]; - then continue - fi - pat='rv32uf-.+elf' - if [[ $(basename $test) =~ $pat ]]; - then continue - fi - if $RISCVDIR/ocaml_emulator/riscv_ocaml_sim_RV32 "$test" >"${test/.elf/.out}" 2>&1 && grep -q SUCCESS "${test/.elf/.out}" - then - green "OCaml-32 $(basename $test)" "ok" - else - red "OCaml-32 $(basename $test)" "fail" - fi -done -finish_suite "32-bit RISCV OCaml tests" - if ARCH=RV32 make c_emulator/riscv_sim_RV32; then @@ -102,31 +77,6 @@ make clean printf "Building 64-bit RISCV specification...\n" -if make ocaml_emulator/riscv_ocaml_sim_RV64 ; -then - green "Building 64-bit RISCV OCaml emulator" "ok" -else - red "Building 64-bit RISCV OCaml emulator" "fail" -fi -for test in $DIR/riscv-tests/rv64*.elf; do - # skip F/D tests on OCaml for now - pat='rv64ud-.+elf' - if [[ $(basename $test) =~ $pat ]]; - then continue - fi - pat='rv64uf-.+elf' - if [[ $(basename $test) =~ $pat ]]; - then continue - fi - if $RISCVDIR/ocaml_emulator/riscv_ocaml_sim_RV64 "$test" >"${test/.elf/.out}" 2>&1 && grep -q SUCCESS "${test/.elf/.out}" - then - green "OCaml-64 $(basename $test)" "ok" - else - red "OCaml-64 $(basename $test)" "fail" - fi -done -finish_suite "64-bit RISCV OCaml tests" - if make c_emulator/riscv_sim_RV64; then green "Building 64-bit RISCV C emulator" "ok" |